package gdsl.plugin.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import gdsl.plugin.services.GDSLGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
@SuppressWarnings("all")
public class InternalGDSLParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_S", "RULE_BINS", "RULE_HEXINT", "RULE_MIXID", "RULE_USCORE", "RULE_BS", "RULE_DOT", "RULE_LESS", "RULE_GREATER", "RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER", "RULE_NEGINT", "RULE_POSINT_WO_DUALS", "RULE_DUALS", "RULE_STRING", "RULE_IDCHAR", "RULE_CHARSYM", "RULE_OTHERSYM", "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "'int'", "'string'", "'unit'", "'+'", "'-'", "'*'", "'%'", "'()'", "';'", "'export'", "':'", "'type'", "'='", "'|'", "'val'", "'['", "']'", "','", "'of'", "'{'", "'}'", "'('", "')'", "'->'", "'=>'", "'end'", "'then'", "'else'", "'<-'", "'^'", "'~'", "'$'", "'in'", "'\\''", "'@'", "'case'", "'if'", "'do'", "'or'", "'and'", "'let'"
    };
    public static final int RULE_ID=4;
    public static final int T__64=64;
    public static final int T__29=29;
    public static final int T__65=65;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__62=62;
    public static final int T__26=26;
    public static final int T__63=63;
    public static final int T__25=25;
    public static final int T__61=61;
    public static final int EOF=-1;
    public static final int T__60=60;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__51=51;
    public static final int RULE_DOT=11;
    public static final int T__52=52;
    public static final int T__53=53;
    public static final int T__54=54;
    public static final int RULE_IDCHAR=19;
    public static final int T__59=59;
    public static final int RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER=14;
    public static final int RULE_S=5;
    public static final int T__50=50;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int RULE_GREATER=13;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int RULE_USCORE=9;
    public static final int RULE_SL_COMMENT=24;
    public static final int RULE_HEXINT=7;
    public static final int RULE_ML_COMMENT=23;
    public static final int RULE_BS=10;
    public static final int RULE_BINS=6;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int RULE_STRING=18;
    public static final int T__32=32;
    public static final int RULE_MIXID=8;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int RULE_OTHERSYM=21;
    public static final int T__39=39;
    public static final int RULE_NEGINT=15;
    public static final int RULE_DUALS=17;
    public static final int RULE_LESS=12;
    public static final int RULE_CHARSYM=20;
    public static final int RULE_WS=22;
    public static final int RULE_POSINT_WO_DUALS=16;

    // delegates
    // delegators


        public InternalGDSLParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalGDSLParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalGDSLParser.tokenNames; }
    public String getGrammarFileName() { return "../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g"; }


     
     	private GDSLGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(GDSLGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleModel"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:61:1: entryRuleModel : ruleModel EOF ;
    public final void entryRuleModel() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:62:1: ( ruleModel EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:63:1: ruleModel EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModelRule()); 
            }
            pushFollow(FOLLOW_ruleModel_in_entryRuleModel67);
            ruleModel();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModelRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleModel74); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleModel"


    // $ANTLR start "ruleModel"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:70:1: ruleModel : ( ( rule__Model__Group__0 ) ) ;
    public final void ruleModel() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:74:2: ( ( ( rule__Model__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:75:1: ( ( rule__Model__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:75:1: ( ( rule__Model__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:76:1: ( rule__Model__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModelAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:77:1: ( rule__Model__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:77:2: rule__Model__Group__0
            {
            pushFollow(FOLLOW_rule__Model__Group__0_in_ruleModel100);
            rule__Model__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModelAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleModel"


    // $ANTLR start "entryRuleDecl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:89:1: entryRuleDecl : ruleDecl EOF ;
    public final void entryRuleDecl() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:90:1: ( ruleDecl EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:91:1: ruleDecl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclRule()); 
            }
            pushFollow(FOLLOW_ruleDecl_in_entryRuleDecl127);
            ruleDecl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleDecl134); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleDecl"


    // $ANTLR start "ruleDecl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:98:1: ruleDecl : ( ( rule__Decl__Alternatives ) ) ;
    public final void ruleDecl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:102:2: ( ( ( rule__Decl__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:103:1: ( ( rule__Decl__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:103:1: ( ( rule__Decl__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:104:1: ( rule__Decl__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:105:1: ( rule__Decl__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:105:2: rule__Decl__Alternatives
            {
            pushFollow(FOLLOW_rule__Decl__Alternatives_in_ruleDecl160);
            rule__Decl__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDecl"


    // $ANTLR start "entryRuleDeclExport"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:117:1: entryRuleDeclExport : ruleDeclExport EOF ;
    public final void entryRuleDeclExport() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:118:1: ( ruleDeclExport EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:119:1: ruleDeclExport EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportRule()); 
            }
            pushFollow(FOLLOW_ruleDeclExport_in_entryRuleDeclExport187);
            ruleDeclExport();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleDeclExport194); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleDeclExport"


    // $ANTLR start "ruleDeclExport"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:126:1: ruleDeclExport : ( ( rule__DeclExport__Group__0 ) ) ;
    public final void ruleDeclExport() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:130:2: ( ( ( rule__DeclExport__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:131:1: ( ( rule__DeclExport__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:131:1: ( ( rule__DeclExport__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:132:1: ( rule__DeclExport__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:133:1: ( rule__DeclExport__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:133:2: rule__DeclExport__Group__0
            {
            pushFollow(FOLLOW_rule__DeclExport__Group__0_in_ruleDeclExport220);
            rule__DeclExport__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDeclExport"


    // $ANTLR start "entryRuleDeclType"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:145:1: entryRuleDeclType : ruleDeclType EOF ;
    public final void entryRuleDeclType() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:146:1: ( ruleDeclType EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:147:1: ruleDeclType EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeRule()); 
            }
            pushFollow(FOLLOW_ruleDeclType_in_entryRuleDeclType247);
            ruleDeclType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleDeclType254); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleDeclType"


    // $ANTLR start "ruleDeclType"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:154:1: ruleDeclType : ( ( rule__DeclType__Group__0 ) ) ;
    public final void ruleDeclType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:158:2: ( ( ( rule__DeclType__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:159:1: ( ( rule__DeclType__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:159:1: ( ( rule__DeclType__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:160:1: ( rule__DeclType__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:161:1: ( rule__DeclType__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:161:2: rule__DeclType__Group__0
            {
            pushFollow(FOLLOW_rule__DeclType__Group__0_in_ruleDeclType280);
            rule__DeclType__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDeclType"


    // $ANTLR start "entryRuleDeclVal"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:173:1: entryRuleDeclVal : ruleDeclVal EOF ;
    public final void entryRuleDeclVal() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:174:1: ( ruleDeclVal EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:175:1: ruleDeclVal EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValRule()); 
            }
            pushFollow(FOLLOW_ruleDeclVal_in_entryRuleDeclVal307);
            ruleDeclVal();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleDeclVal314); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleDeclVal"


    // $ANTLR start "ruleDeclVal"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:182:1: ruleDeclVal : ( ( rule__DeclVal__Group__0 ) ) ;
    public final void ruleDeclVal() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:186:2: ( ( ( rule__DeclVal__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:187:1: ( ( rule__DeclVal__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:187:1: ( ( rule__DeclVal__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:188:1: ( rule__DeclVal__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:189:1: ( rule__DeclVal__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:189:2: rule__DeclVal__Group__0
            {
            pushFollow(FOLLOW_rule__DeclVal__Group__0_in_ruleDeclVal340);
            rule__DeclVal__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDeclVal"


    // $ANTLR start "entryRuleTyVars"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:201:1: entryRuleTyVars : ruleTyVars EOF ;
    public final void entryRuleTyVars() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:202:1: ( ruleTyVars EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:203:1: ruleTyVars EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsRule()); 
            }
            pushFollow(FOLLOW_ruleTyVars_in_entryRuleTyVars367);
            ruleTyVars();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTyVars374); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTyVars"


    // $ANTLR start "ruleTyVars"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:210:1: ruleTyVars : ( ( rule__TyVars__Group__0 ) ) ;
    public final void ruleTyVars() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:214:2: ( ( ( rule__TyVars__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:215:1: ( ( rule__TyVars__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:215:1: ( ( rule__TyVars__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:216:1: ( rule__TyVars__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:217:1: ( rule__TyVars__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:217:2: rule__TyVars__Group__0
            {
            pushFollow(FOLLOW_rule__TyVars__Group__0_in_ruleTyVars400);
            rule__TyVars__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTyVars"


    // $ANTLR start "entryRuleTyVar"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:229:1: entryRuleTyVar : ruleTyVar EOF ;
    public final void entryRuleTyVar() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:230:1: ( ruleTyVar EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:231:1: ruleTyVar EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarRule()); 
            }
            pushFollow(FOLLOW_ruleTyVar_in_entryRuleTyVar427);
            ruleTyVar();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTyVar434); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTyVar"


    // $ANTLR start "ruleTyVar"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:238:1: ruleTyVar : ( ( rule__TyVar__NameAssignment ) ) ;
    public final void ruleTyVar() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:242:2: ( ( ( rule__TyVar__NameAssignment ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:243:1: ( ( rule__TyVar__NameAssignment ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:243:1: ( ( rule__TyVar__NameAssignment ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:244:1: ( rule__TyVar__NameAssignment )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarAccess().getNameAssignment()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:245:1: ( rule__TyVar__NameAssignment )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:245:2: rule__TyVar__NameAssignment
            {
            pushFollow(FOLLOW_rule__TyVar__NameAssignment_in_ruleTyVar460);
            rule__TyVar__NameAssignment();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarAccess().getNameAssignment()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTyVar"


    // $ANTLR start "entryRuleConDecl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:257:1: entryRuleConDecl : ruleConDecl EOF ;
    public final void entryRuleConDecl() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:258:1: ( ruleConDecl EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:259:1: ruleConDecl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConDeclRule()); 
            }
            pushFollow(FOLLOW_ruleConDecl_in_entryRuleConDecl487);
            ruleConDecl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConDeclRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleConDecl494); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleConDecl"


    // $ANTLR start "ruleConDecl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:266:1: ruleConDecl : ( ( rule__ConDecl__Group__0 ) ) ;
    public final void ruleConDecl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:270:2: ( ( ( rule__ConDecl__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:271:1: ( ( rule__ConDecl__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:271:1: ( ( rule__ConDecl__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:272:1: ( rule__ConDecl__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConDeclAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:273:1: ( rule__ConDecl__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:273:2: rule__ConDecl__Group__0
            {
            pushFollow(FOLLOW_rule__ConDecl__Group__0_in_ruleConDecl520);
            rule__ConDecl__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConDeclAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleConDecl"


    // $ANTLR start "entryRuleTy"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:285:1: entryRuleTy : ruleTy EOF ;
    public final void entryRuleTy() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:286:1: ( ruleTy EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:287:1: ruleTy EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyRule()); 
            }
            pushFollow(FOLLOW_ruleTy_in_entryRuleTy547);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTy554); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTy"


    // $ANTLR start "ruleTy"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:294:1: ruleTy : ( ( rule__Ty__Alternatives ) ) ;
    public final void ruleTy() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:298:2: ( ( ( rule__Ty__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:299:1: ( ( rule__Ty__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:299:1: ( ( rule__Ty__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:300:1: ( rule__Ty__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:301:1: ( rule__Ty__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:301:2: rule__Ty__Alternatives
            {
            pushFollow(FOLLOW_rule__Ty__Alternatives_in_ruleTy580);
            rule__Ty__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTy"


    // $ANTLR start "entryRuleTyBind"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:313:1: entryRuleTyBind : ruleTyBind EOF ;
    public final void entryRuleTyBind() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:314:1: ( ruleTyBind EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:315:1: ruleTyBind EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyBindRule()); 
            }
            pushFollow(FOLLOW_ruleTyBind_in_entryRuleTyBind607);
            ruleTyBind();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyBindRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTyBind614); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTyBind"


    // $ANTLR start "ruleTyBind"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:322:1: ruleTyBind : ( ( rule__TyBind__Group__0 ) ) ;
    public final void ruleTyBind() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:326:2: ( ( ( rule__TyBind__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:327:1: ( ( rule__TyBind__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:327:1: ( ( rule__TyBind__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:328:1: ( rule__TyBind__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyBindAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:329:1: ( rule__TyBind__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:329:2: rule__TyBind__Group__0
            {
            pushFollow(FOLLOW_rule__TyBind__Group__0_in_ruleTyBind640);
            rule__TyBind__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyBindAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTyBind"


    // $ANTLR start "entryRuleTyElement"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:341:1: entryRuleTyElement : ruleTyElement EOF ;
    public final void entryRuleTyElement() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:342:1: ( ruleTyElement EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:343:1: ruleTyElement EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyElementRule()); 
            }
            pushFollow(FOLLOW_ruleTyElement_in_entryRuleTyElement667);
            ruleTyElement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyElementRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTyElement674); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTyElement"


    // $ANTLR start "ruleTyElement"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:350:1: ruleTyElement : ( ( rule__TyElement__Group__0 ) ) ;
    public final void ruleTyElement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:354:2: ( ( ( rule__TyElement__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:355:1: ( ( rule__TyElement__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:355:1: ( ( rule__TyElement__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:356:1: ( rule__TyElement__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyElementAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:357:1: ( rule__TyElement__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:357:2: rule__TyElement__Group__0
            {
            pushFollow(FOLLOW_rule__TyElement__Group__0_in_ruleTyElement700);
            rule__TyElement__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyElementAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTyElement"


    // $ANTLR start "entryRuleExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:369:1: entryRuleExp : ruleExp EOF ;
    public final void entryRuleExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:370:1: ( ruleExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:371:1: ruleExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExpRule()); 
            }
            pushFollow(FOLLOW_ruleExp_in_entryRuleExp727);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleExp734); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleExp"


    // $ANTLR start "ruleExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:378:1: ruleExp : ( ( rule__Exp__Alternatives ) ) ;
    public final void ruleExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:382:2: ( ( ( rule__Exp__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:383:1: ( ( rule__Exp__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:383:1: ( ( rule__Exp__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:384:1: ( rule__Exp__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExpAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:385:1: ( rule__Exp__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:385:2: rule__Exp__Alternatives
            {
            pushFollow(FOLLOW_rule__Exp__Alternatives_in_ruleExp760);
            rule__Exp__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExpAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleExp"


    // $ANTLR start "entryRuleCaseExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:397:1: entryRuleCaseExp : ruleCaseExp EOF ;
    public final void entryRuleCaseExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:398:1: ( ruleCaseExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:399:1: ruleCaseExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpRule()); 
            }
            pushFollow(FOLLOW_ruleCaseExp_in_entryRuleCaseExp787);
            ruleCaseExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleCaseExp794); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleCaseExp"


    // $ANTLR start "ruleCaseExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:406:1: ruleCaseExp : ( ( rule__CaseExp__Alternatives ) ) ;
    public final void ruleCaseExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:410:2: ( ( ( rule__CaseExp__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:411:1: ( ( rule__CaseExp__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:411:1: ( ( rule__CaseExp__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:412:1: ( rule__CaseExp__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:413:1: ( rule__CaseExp__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:413:2: rule__CaseExp__Alternatives
            {
            pushFollow(FOLLOW_rule__CaseExp__Alternatives_in_ruleCaseExp820);
            rule__CaseExp__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleCaseExp"


    // $ANTLR start "entryRuleClosedExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:425:1: entryRuleClosedExp : ruleClosedExp EOF ;
    public final void entryRuleClosedExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:426:1: ( ruleClosedExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:427:1: ruleClosedExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpRule()); 
            }
            pushFollow(FOLLOW_ruleClosedExp_in_entryRuleClosedExp847);
            ruleClosedExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleClosedExp854); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleClosedExp"


    // $ANTLR start "ruleClosedExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:434:1: ruleClosedExp : ( ( rule__ClosedExp__Alternatives ) ) ;
    public final void ruleClosedExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:438:2: ( ( ( rule__ClosedExp__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:439:1: ( ( rule__ClosedExp__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:439:1: ( ( rule__ClosedExp__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:440:1: ( rule__ClosedExp__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:441:1: ( rule__ClosedExp__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:441:2: rule__ClosedExp__Alternatives
            {
            pushFollow(FOLLOW_rule__ClosedExp__Alternatives_in_ruleClosedExp880);
            rule__ClosedExp__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleClosedExp"


    // $ANTLR start "entryRuleMonadicExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:453:1: entryRuleMonadicExp : ruleMonadicExp EOF ;
    public final void entryRuleMonadicExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:454:1: ( ruleMonadicExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:455:1: ruleMonadicExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMonadicExpRule()); 
            }
            pushFollow(FOLLOW_ruleMonadicExp_in_entryRuleMonadicExp907);
            ruleMonadicExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMonadicExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonadicExp914); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleMonadicExp"


    // $ANTLR start "ruleMonadicExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:462:1: ruleMonadicExp : ( ( rule__MonadicExp__Alternatives ) ) ;
    public final void ruleMonadicExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:466:2: ( ( ( rule__MonadicExp__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:467:1: ( ( rule__MonadicExp__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:467:1: ( ( rule__MonadicExp__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:468:1: ( rule__MonadicExp__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMonadicExpAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:469:1: ( rule__MonadicExp__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:469:2: rule__MonadicExp__Alternatives
            {
            pushFollow(FOLLOW_rule__MonadicExp__Alternatives_in_ruleMonadicExp940);
            rule__MonadicExp__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMonadicExpAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMonadicExp"


    // $ANTLR start "entryRuleOrElseExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:481:1: entryRuleOrElseExp : ruleOrElseExp EOF ;
    public final void entryRuleOrElseExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:482:1: ( ruleOrElseExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:483:1: ruleOrElseExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpRule()); 
            }
            pushFollow(FOLLOW_ruleOrElseExp_in_entryRuleOrElseExp967);
            ruleOrElseExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleOrElseExp974); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOrElseExp"


    // $ANTLR start "ruleOrElseExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:490:1: ruleOrElseExp : ( ( rule__OrElseExp__Group__0 ) ) ;
    public final void ruleOrElseExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:494:2: ( ( ( rule__OrElseExp__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:495:1: ( ( rule__OrElseExp__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:495:1: ( ( rule__OrElseExp__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:496:1: ( rule__OrElseExp__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:497:1: ( rule__OrElseExp__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:497:2: rule__OrElseExp__Group__0
            {
            pushFollow(FOLLOW_rule__OrElseExp__Group__0_in_ruleOrElseExp1000);
            rule__OrElseExp__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOrElseExp"


    // $ANTLR start "entryRuleAndAlsoExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:509:1: entryRuleAndAlsoExp : ruleAndAlsoExp EOF ;
    public final void entryRuleAndAlsoExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:510:1: ( ruleAndAlsoExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:511:1: ruleAndAlsoExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpRule()); 
            }
            pushFollow(FOLLOW_ruleAndAlsoExp_in_entryRuleAndAlsoExp1027);
            ruleAndAlsoExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAndAlsoExp1034); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAndAlsoExp"


    // $ANTLR start "ruleAndAlsoExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:518:1: ruleAndAlsoExp : ( ( rule__AndAlsoExp__Group__0 ) ) ;
    public final void ruleAndAlsoExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:522:2: ( ( ( rule__AndAlsoExp__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:523:1: ( ( rule__AndAlsoExp__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:523:1: ( ( rule__AndAlsoExp__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:524:1: ( rule__AndAlsoExp__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:525:1: ( rule__AndAlsoExp__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:525:2: rule__AndAlsoExp__Group__0
            {
            pushFollow(FOLLOW_rule__AndAlsoExp__Group__0_in_ruleAndAlsoExp1060);
            rule__AndAlsoExp__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAndAlsoExp"


    // $ANTLR start "entryRuleRExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:537:1: entryRuleRExp : ruleRExp EOF ;
    public final void entryRuleRExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:538:1: ( ruleRExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:539:1: ruleRExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRExpRule()); 
            }
            pushFollow(FOLLOW_ruleRExp_in_entryRuleRExp1087);
            ruleRExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleRExp1094); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleRExp"


    // $ANTLR start "ruleRExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:546:1: ruleRExp : ( ( rule__RExp__Group__0 ) ) ;
    public final void ruleRExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:550:2: ( ( ( rule__RExp__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:551:1: ( ( rule__RExp__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:551:1: ( ( rule__RExp__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:552:1: ( rule__RExp__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRExpAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:553:1: ( rule__RExp__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:553:2: rule__RExp__Group__0
            {
            pushFollow(FOLLOW_rule__RExp__Group__0_in_ruleRExp1120);
            rule__RExp__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRExpAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleRExp"


    // $ANTLR start "entryRuleAExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:565:1: entryRuleAExp : ruleAExp EOF ;
    public final void entryRuleAExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:566:1: ( ruleAExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:567:1: ruleAExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAExpRule()); 
            }
            pushFollow(FOLLOW_ruleAExp_in_entryRuleAExp1147);
            ruleAExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAExp1154); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAExp"


    // $ANTLR start "ruleAExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:574:1: ruleAExp : ( ( rule__AExp__Group__0 ) ) ;
    public final void ruleAExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:578:2: ( ( ( rule__AExp__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:579:1: ( ( rule__AExp__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:579:1: ( ( rule__AExp__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:580:1: ( rule__AExp__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAExpAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:581:1: ( rule__AExp__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:581:2: rule__AExp__Group__0
            {
            pushFollow(FOLLOW_rule__AExp__Group__0_in_ruleAExp1180);
            rule__AExp__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAExpAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAExp"


    // $ANTLR start "entryRuleMExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:593:1: entryRuleMExp : ruleMExp EOF ;
    public final void entryRuleMExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:594:1: ( ruleMExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:595:1: ruleMExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMExpRule()); 
            }
            pushFollow(FOLLOW_ruleMExp_in_entryRuleMExp1207);
            ruleMExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleMExp1214); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleMExp"


    // $ANTLR start "ruleMExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:602:1: ruleMExp : ( ( rule__MExp__Group__0 ) ) ;
    public final void ruleMExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:606:2: ( ( ( rule__MExp__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:607:1: ( ( rule__MExp__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:607:1: ( ( rule__MExp__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:608:1: ( rule__MExp__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMExpAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:609:1: ( rule__MExp__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:609:2: rule__MExp__Group__0
            {
            pushFollow(FOLLOW_rule__MExp__Group__0_in_ruleMExp1240);
            rule__MExp__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMExpAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMExp"


    // $ANTLR start "entryRuleSelectExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:621:1: entryRuleSelectExp : ruleSelectExp EOF ;
    public final void entryRuleSelectExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:622:1: ( ruleSelectExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:623:1: ruleSelectExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSelectExpRule()); 
            }
            pushFollow(FOLLOW_ruleSelectExp_in_entryRuleSelectExp1267);
            ruleSelectExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSelectExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectExp1274); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleSelectExp"


    // $ANTLR start "ruleSelectExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:630:1: ruleSelectExp : ( ( rule__SelectExp__Group__0 ) ) ;
    public final void ruleSelectExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:634:2: ( ( ( rule__SelectExp__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:635:1: ( ( rule__SelectExp__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:635:1: ( ( rule__SelectExp__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:636:1: ( rule__SelectExp__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSelectExpAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:637:1: ( rule__SelectExp__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:637:2: rule__SelectExp__Group__0
            {
            pushFollow(FOLLOW_rule__SelectExp__Group__0_in_ruleSelectExp1300);
            rule__SelectExp__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSelectExpAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleSelectExp"


    // $ANTLR start "entryRuleApplyExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:649:1: entryRuleApplyExp : ruleApplyExp EOF ;
    public final void entryRuleApplyExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:650:1: ( ruleApplyExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:651:1: ruleApplyExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getApplyExpRule()); 
            }
            pushFollow(FOLLOW_ruleApplyExp_in_entryRuleApplyExp1327);
            ruleApplyExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getApplyExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleApplyExp1334); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleApplyExp"


    // $ANTLR start "ruleApplyExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:658:1: ruleApplyExp : ( ( rule__ApplyExp__Alternatives ) ) ;
    public final void ruleApplyExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:662:2: ( ( ( rule__ApplyExp__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:663:1: ( ( rule__ApplyExp__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:663:1: ( ( rule__ApplyExp__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:664:1: ( rule__ApplyExp__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getApplyExpAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:665:1: ( rule__ApplyExp__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:665:2: rule__ApplyExp__Alternatives
            {
            pushFollow(FOLLOW_rule__ApplyExp__Alternatives_in_ruleApplyExp1360);
            rule__ApplyExp__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getApplyExpAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleApplyExp"


    // $ANTLR start "entryRuleArgs"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:677:1: entryRuleArgs : ruleArgs EOF ;
    public final void entryRuleArgs() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:678:1: ( ruleArgs EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:679:1: ruleArgs EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgsRule()); 
            }
            pushFollow(FOLLOW_ruleArgs_in_entryRuleArgs1387);
            ruleArgs();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleArgs1394); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleArgs"


    // $ANTLR start "ruleArgs"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:686:1: ruleArgs : ( ( rule__Args__Group__0 ) ) ;
    public final void ruleArgs() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:690:2: ( ( ( rule__Args__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:691:1: ( ( rule__Args__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:691:1: ( ( rule__Args__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:692:1: ( rule__Args__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgsAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:693:1: ( rule__Args__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:693:2: rule__Args__Group__0
            {
            pushFollow(FOLLOW_rule__Args__Group__0_in_ruleArgs1420);
            rule__Args__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgsAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleArgs"


    // $ANTLR start "entryRuleAtomicExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:705:1: entryRuleAtomicExp : ruleAtomicExp EOF ;
    public final void entryRuleAtomicExp() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:706:1: ( ruleAtomicExp EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:707:1: ruleAtomicExp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpRule()); 
            }
            pushFollow(FOLLOW_ruleAtomicExp_in_entryRuleAtomicExp1447);
            ruleAtomicExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAtomicExp1454); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAtomicExp"


    // $ANTLR start "ruleAtomicExp"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:714:1: ruleAtomicExp : ( ( rule__AtomicExp__Alternatives ) ) ;
    public final void ruleAtomicExp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:718:2: ( ( ( rule__AtomicExp__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:719:1: ( ( rule__AtomicExp__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:719:1: ( ( rule__AtomicExp__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:720:1: ( rule__AtomicExp__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:721:1: ( rule__AtomicExp__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:721:2: rule__AtomicExp__Alternatives
            {
            pushFollow(FOLLOW_rule__AtomicExp__Alternatives_in_ruleAtomicExp1480);
            rule__AtomicExp__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAtomicExp"


    // $ANTLR start "entryRuleField"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:733:1: entryRuleField : ruleField EOF ;
    public final void entryRuleField() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:734:1: ( ruleField EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:735:1: ruleField EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldRule()); 
            }
            pushFollow(FOLLOW_ruleField_in_entryRuleField1507);
            ruleField();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleField1514); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleField"


    // $ANTLR start "ruleField"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:742:1: ruleField : ( ( rule__Field__Alternatives ) ) ;
    public final void ruleField() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:746:2: ( ( ( rule__Field__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:747:1: ( ( rule__Field__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:747:1: ( ( rule__Field__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:748:1: ( rule__Field__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:749:1: ( rule__Field__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:749:2: rule__Field__Alternatives
            {
            pushFollow(FOLLOW_rule__Field__Alternatives_in_ruleField1540);
            rule__Field__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleField"


    // $ANTLR start "entryRuleValueDecl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:761:1: entryRuleValueDecl : ruleValueDecl EOF ;
    public final void entryRuleValueDecl() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:762:1: ( ruleValueDecl EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:763:1: ruleValueDecl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclRule()); 
            }
            pushFollow(FOLLOW_ruleValueDecl_in_entryRuleValueDecl1567);
            ruleValueDecl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleValueDecl1574); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleValueDecl"


    // $ANTLR start "ruleValueDecl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:770:1: ruleValueDecl : ( ( rule__ValueDecl__Group__0 ) ) ;
    public final void ruleValueDecl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:774:2: ( ( ( rule__ValueDecl__Group__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:775:1: ( ( rule__ValueDecl__Group__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:775:1: ( ( rule__ValueDecl__Group__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:776:1: ( rule__ValueDecl__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getGroup()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:777:1: ( rule__ValueDecl__Group__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:777:2: rule__ValueDecl__Group__0
            {
            pushFollow(FOLLOW_rule__ValueDecl__Group__0_in_ruleValueDecl1600);
            rule__ValueDecl__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleValueDecl"


    // $ANTLR start "entryRulePAT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:789:1: entryRulePAT : rulePAT EOF ;
    public final void entryRulePAT() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:790:1: ( rulePAT EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:791:1: rulePAT EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATRule()); 
            }
            pushFollow(FOLLOW_rulePAT_in_entryRulePAT1627);
            rulePAT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRulePAT1634); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePAT"


    // $ANTLR start "rulePAT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:798:1: rulePAT : ( ( rule__PAT__Alternatives ) ) ;
    public final void rulePAT() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:802:2: ( ( ( rule__PAT__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:803:1: ( ( rule__PAT__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:803:1: ( ( rule__PAT__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:804:1: ( rule__PAT__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:805:1: ( rule__PAT__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:805:2: rule__PAT__Alternatives
            {
            pushFollow(FOLLOW_rule__PAT__Alternatives_in_rulePAT1660);
            rule__PAT__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePAT"


    // $ANTLR start "entryRuleCONS"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:817:1: entryRuleCONS : ruleCONS EOF ;
    public final void entryRuleCONS() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:818:1: ( ruleCONS EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:819:1: ruleCONS EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCONSRule()); 
            }
            pushFollow(FOLLOW_ruleCONS_in_entryRuleCONS1687);
            ruleCONS();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCONSRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleCONS1694); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleCONS"


    // $ANTLR start "ruleCONS"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:826:1: ruleCONS : ( ( rule__CONS__ConNameAssignment ) ) ;
    public final void ruleCONS() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:830:2: ( ( ( rule__CONS__ConNameAssignment ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:831:1: ( ( rule__CONS__ConNameAssignment ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:831:1: ( ( rule__CONS__ConNameAssignment ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:832:1: ( rule__CONS__ConNameAssignment )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCONSAccess().getConNameAssignment()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:833:1: ( rule__CONS__ConNameAssignment )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:833:2: rule__CONS__ConNameAssignment
            {
            pushFollow(FOLLOW_rule__CONS__ConNameAssignment_in_ruleCONS1720);
            rule__CONS__ConNameAssignment();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCONSAccess().getConNameAssignment()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleCONS"


    // $ANTLR start "entryRuleDECODEPAT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:845:1: entryRuleDECODEPAT : ruleDECODEPAT EOF ;
    public final void entryRuleDECODEPAT() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:846:1: ( ruleDECODEPAT EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:847:1: ruleDECODEPAT EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDECODEPATRule()); 
            }
            pushFollow(FOLLOW_ruleDECODEPAT_in_entryRuleDECODEPAT1747);
            ruleDECODEPAT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDECODEPATRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleDECODEPAT1754); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleDECODEPAT"


    // $ANTLR start "ruleDECODEPAT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:854:1: ruleDECODEPAT : ( ( rule__DECODEPAT__Alternatives ) ) ;
    public final void ruleDECODEPAT() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:858:2: ( ( ( rule__DECODEPAT__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:859:1: ( ( rule__DECODEPAT__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:859:1: ( ( rule__DECODEPAT__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:860:1: ( rule__DECODEPAT__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDECODEPATAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:861:1: ( rule__DECODEPAT__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:861:2: rule__DECODEPAT__Alternatives
            {
            pushFollow(FOLLOW_rule__DECODEPAT__Alternatives_in_ruleDECODEPAT1780);
            rule__DECODEPAT__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDECODEPATAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDECODEPAT"


    // $ANTLR start "entryRuleTOKPAT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:873:1: entryRuleTOKPAT : ruleTOKPAT EOF ;
    public final void entryRuleTOKPAT() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:874:1: ( ruleTOKPAT EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:875:1: ruleTOKPAT EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTOKPATRule()); 
            }
            pushFollow(FOLLOW_ruleTOKPAT_in_entryRuleTOKPAT1807);
            ruleTOKPAT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTOKPATRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTOKPAT1814); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTOKPAT"


    // $ANTLR start "ruleTOKPAT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:882:1: ruleTOKPAT : ( ( rule__TOKPAT__Alternatives ) ) ;
    public final void ruleTOKPAT() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:886:2: ( ( ( rule__TOKPAT__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:887:1: ( ( rule__TOKPAT__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:887:1: ( ( rule__TOKPAT__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:888:1: ( rule__TOKPAT__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTOKPATAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:889:1: ( rule__TOKPAT__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:889:2: rule__TOKPAT__Alternatives
            {
            pushFollow(FOLLOW_rule__TOKPAT__Alternatives_in_ruleTOKPAT1840);
            rule__TOKPAT__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTOKPATAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTOKPAT"


    // $ANTLR start "entryRuleBITPAT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:901:1: entryRuleBITPAT : ruleBITPAT EOF ;
    public final void entryRuleBITPAT() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:902:1: ( ruleBITPAT EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:903:1: ruleBITPAT EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATRule()); 
            }
            pushFollow(FOLLOW_ruleBITPAT_in_entryRuleBITPAT1867);
            ruleBITPAT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleBITPAT1874); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleBITPAT"


    // $ANTLR start "ruleBITPAT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:910:1: ruleBITPAT : ( ( rule__BITPAT__Alternatives ) ) ;
    public final void ruleBITPAT() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:914:2: ( ( ( rule__BITPAT__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:915:1: ( ( rule__BITPAT__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:915:1: ( ( rule__BITPAT__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:916:1: ( rule__BITPAT__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:917:1: ( rule__BITPAT__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:917:2: rule__BITPAT__Alternatives
            {
            pushFollow(FOLLOW_rule__BITPAT__Alternatives_in_ruleBITPAT1900);
            rule__BITPAT__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleBITPAT"


    // $ANTLR start "entryRuleBITPATORINT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:929:1: entryRuleBITPATORINT : ruleBITPATORINT EOF ;
    public final void entryRuleBITPATORINT() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:930:1: ( ruleBITPATORINT EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:931:1: ruleBITPATORINT EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATORINTRule()); 
            }
            pushFollow(FOLLOW_ruleBITPATORINT_in_entryRuleBITPATORINT1927);
            ruleBITPATORINT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATORINTRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleBITPATORINT1934); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleBITPATORINT"


    // $ANTLR start "ruleBITPATORINT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:938:1: ruleBITPATORINT : ( ( rule__BITPATORINT__Alternatives ) ) ;
    public final void ruleBITPATORINT() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:942:2: ( ( ( rule__BITPATORINT__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:943:1: ( ( rule__BITPATORINT__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:943:1: ( ( rule__BITPATORINT__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:944:1: ( rule__BITPATORINT__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATORINTAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:945:1: ( rule__BITPATORINT__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:945:2: rule__BITPATORINT__Alternatives
            {
            pushFollow(FOLLOW_rule__BITPATORINT__Alternatives_in_ruleBITPATORINT1960);
            rule__BITPATORINT__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATORINTAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleBITPATORINT"


    // $ANTLR start "entryRuleLIT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:957:1: entryRuleLIT : ruleLIT EOF ;
    public final void entryRuleLIT() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:958:1: ( ruleLIT EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:959:1: ruleLIT EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLITRule()); 
            }
            pushFollow(FOLLOW_ruleLIT_in_entryRuleLIT1987);
            ruleLIT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLITRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleLIT1994); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleLIT"


    // $ANTLR start "ruleLIT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:966:1: ruleLIT : ( ( rule__LIT__Alternatives ) ) ;
    public final void ruleLIT() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:970:2: ( ( ( rule__LIT__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:971:1: ( ( rule__LIT__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:971:1: ( ( rule__LIT__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:972:1: ( rule__LIT__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLITAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:973:1: ( rule__LIT__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:973:2: rule__LIT__Alternatives
            {
            pushFollow(FOLLOW_rule__LIT__Alternatives_in_ruleLIT2020);
            rule__LIT__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLITAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleLIT"


    // $ANTLR start "entryRuleMID"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:985:1: entryRuleMID : ruleMID EOF ;
    public final void entryRuleMID() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:986:1: ( ruleMID EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:987:1: ruleMID EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMIDRule()); 
            }
            pushFollow(FOLLOW_ruleMID_in_entryRuleMID2047);
            ruleMID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMIDRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleMID2054); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleMID"


    // $ANTLR start "ruleMID"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:994:1: ruleMID : ( ( rule__MID__Alternatives ) ) ;
    public final void ruleMID() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:998:2: ( ( ( rule__MID__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:999:1: ( ( rule__MID__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:999:1: ( ( rule__MID__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1000:1: ( rule__MID__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMIDAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1001:1: ( rule__MID__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1001:2: rule__MID__Alternatives
            {
            pushFollow(FOLLOW_rule__MID__Alternatives_in_ruleMID2080);
            rule__MID__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMIDAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMID"


    // $ANTLR start "entryRuleSYM"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1013:1: entryRuleSYM : ruleSYM EOF ;
    public final void entryRuleSYM() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1014:1: ( ruleSYM EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1015:1: ruleSYM EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSYMRule()); 
            }
            pushFollow(FOLLOW_ruleSYM_in_entryRuleSYM2107);
            ruleSYM();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSYMRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleSYM2114); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleSYM"


    // $ANTLR start "ruleSYM"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1022:1: ruleSYM : ( ( rule__SYM__Alternatives ) ) ;
    public final void ruleSYM() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1026:2: ( ( ( rule__SYM__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1027:1: ( ( rule__SYM__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1027:1: ( ( rule__SYM__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1028:1: ( rule__SYM__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSYMAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1029:1: ( rule__SYM__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1029:2: rule__SYM__Alternatives
            {
            pushFollow(FOLLOW_rule__SYM__Alternatives_in_ruleSYM2140);
            rule__SYM__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSYMAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleSYM"


    // $ANTLR start "entryRuleINTEGER"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1041:1: entryRuleINTEGER : ruleINTEGER EOF ;
    public final void entryRuleINTEGER() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1042:1: ( ruleINTEGER EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1043:1: ruleINTEGER EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getINTEGERRule()); 
            }
            pushFollow(FOLLOW_ruleINTEGER_in_entryRuleINTEGER2167);
            ruleINTEGER();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getINTEGERRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleINTEGER2174); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleINTEGER"


    // $ANTLR start "ruleINTEGER"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1050:1: ruleINTEGER : ( ( rule__INTEGER__Alternatives ) ) ;
    public final void ruleINTEGER() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1054:2: ( ( ( rule__INTEGER__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1055:1: ( ( rule__INTEGER__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1055:1: ( ( rule__INTEGER__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1056:1: ( rule__INTEGER__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getINTEGERAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1057:1: ( rule__INTEGER__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1057:2: rule__INTEGER__Alternatives
            {
            pushFollow(FOLLOW_rule__INTEGER__Alternatives_in_ruleINTEGER2200);
            rule__INTEGER__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getINTEGERAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleINTEGER"


    // $ANTLR start "entryRulePOSINT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1069:1: entryRulePOSINT : rulePOSINT EOF ;
    public final void entryRulePOSINT() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1070:1: ( rulePOSINT EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1071:1: rulePOSINT EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPOSINTRule()); 
            }
            pushFollow(FOLLOW_rulePOSINT_in_entryRulePOSINT2227);
            rulePOSINT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPOSINTRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRulePOSINT2234); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePOSINT"


    // $ANTLR start "rulePOSINT"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1078:1: rulePOSINT : ( ( rule__POSINT__Alternatives ) ) ;
    public final void rulePOSINT() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1082:2: ( ( ( rule__POSINT__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1083:1: ( ( rule__POSINT__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1083:1: ( ( rule__POSINT__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1084:1: ( rule__POSINT__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPOSINTAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1085:1: ( rule__POSINT__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1085:2: rule__POSINT__Alternatives
            {
            pushFollow(FOLLOW_rule__POSINT__Alternatives_in_rulePOSINT2260);
            rule__POSINT__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPOSINTAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePOSINT"


    // $ANTLR start "entryRuleBINARY"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1097:1: entryRuleBINARY : ruleBINARY EOF ;
    public final void entryRuleBINARY() throws RecognitionException {
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1098:1: ( ruleBINARY EOF )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1099:1: ruleBINARY EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBINARYRule()); 
            }
            pushFollow(FOLLOW_ruleBINARY_in_entryRuleBINARY2287);
            ruleBINARY();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBINARYRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleBINARY2294); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleBINARY"


    // $ANTLR start "ruleBINARY"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1106:1: ruleBINARY : ( ( rule__BINARY__Alternatives ) ) ;
    public final void ruleBINARY() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1110:2: ( ( ( rule__BINARY__Alternatives ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1111:1: ( ( rule__BINARY__Alternatives ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1111:1: ( ( rule__BINARY__Alternatives ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1112:1: ( rule__BINARY__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBINARYAccess().getAlternatives()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1113:1: ( rule__BINARY__Alternatives )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1113:2: rule__BINARY__Alternatives
            {
            pushFollow(FOLLOW_rule__BINARY__Alternatives_in_ruleBINARY2320);
            rule__BINARY__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBINARYAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleBINARY"


    // $ANTLR start "rule__Decl__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1125:1: rule__Decl__Alternatives : ( ( ruleDeclExport ) | ( ruleDeclType ) | ( ruleDeclVal ) );
    public final void rule__Decl__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1129:1: ( ( ruleDeclExport ) | ( ruleDeclType ) | ( ruleDeclVal ) )
            int alt1=3;
            switch ( input.LA(1) ) {
            case 34:
                {
                alt1=1;
                }
                break;
            case 36:
                {
                alt1=2;
                }
                break;
            case 39:
                {
                alt1=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }

            switch (alt1) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1130:1: ( ruleDeclExport )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1130:1: ( ruleDeclExport )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1131:1: ruleDeclExport
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclAccess().getDeclExportParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleDeclExport_in_rule__Decl__Alternatives2356);
                    ruleDeclExport();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclAccess().getDeclExportParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1136:6: ( ruleDeclType )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1136:6: ( ruleDeclType )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1137:1: ruleDeclType
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclAccess().getDeclTypeParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleDeclType_in_rule__Decl__Alternatives2373);
                    ruleDeclType();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclAccess().getDeclTypeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1142:6: ( ruleDeclVal )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1142:6: ( ruleDeclVal )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1143:1: ruleDeclVal
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclAccess().getDeclValParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleDeclVal_in_rule__Decl__Alternatives2390);
                    ruleDeclVal();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclAccess().getDeclValParserRuleCall_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Decl__Alternatives"


    // $ANTLR start "rule__DeclType__NameAlternatives_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1153:1: rule__DeclType__NameAlternatives_1_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__DeclType__NameAlternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1157:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==RULE_ID) ) {
                alt2=1;
            }
            else if ( (LA2_0==RULE_S) ) {
                alt2=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1158:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1158:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1159:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclTypeAccess().getNameIDTerminalRuleCall_1_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DeclType__NameAlternatives_1_02422); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclTypeAccess().getNameIDTerminalRuleCall_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1164:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1164:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1165:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclTypeAccess().getNameSTerminalRuleCall_1_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__DeclType__NameAlternatives_1_02439); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclTypeAccess().getNameSTerminalRuleCall_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__NameAlternatives_1_0"


    // $ANTLR start "rule__DeclType__Alternatives_4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1175:1: rule__DeclType__Alternatives_4 : ( ( ( rule__DeclType__Group_4_0__0 ) ) | ( ( rule__DeclType__ValueAssignment_4_1 ) ) );
    public final void rule__DeclType__Alternatives_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1179:1: ( ( ( rule__DeclType__Group_4_0__0 ) ) | ( ( rule__DeclType__ValueAssignment_4_1 ) ) )
            int alt3=2;
            switch ( input.LA(1) ) {
            case RULE_ID:
                {
                int LA3_1 = input.LA(2);

                if ( (synpred4_InternalGDSL()) ) {
                    alt3=1;
                }
                else if ( (true) ) {
                    alt3=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 3, 1, input);

                    throw nvae;
                }
                }
                break;
            case RULE_S:
                {
                switch ( input.LA(2) ) {
                case RULE_ID:
                case RULE_S:
                case RULE_BINS:
                case RULE_HEXINT:
                case RULE_NEGINT:
                case RULE_POSINT_WO_DUALS:
                case RULE_DUALS:
                case 25:
                case 26:
                case 27:
                case 32:
                case 44:
                case 46:
                    {
                    alt3=2;
                    }
                    break;
                case 38:
                    {
                    switch ( input.LA(3) ) {
                    case RULE_ID:
                        {
                        int LA3_6 = input.LA(4);

                        if ( (LA3_6==EOF||(LA3_6>=33 && LA3_6<=34)||LA3_6==36||LA3_6==39||LA3_6==43) ) {
                            alt3=1;
                        }
                        else if ( (LA3_6==38) ) {
                            int LA3_7 = input.LA(5);

                            if ( (LA3_7==RULE_LESS) ) {
                                alt3=2;
                            }
                            else if ( ((LA3_7>=RULE_ID && LA3_7<=RULE_S)) ) {
                                alt3=1;
                            }
                            else {
                                if (state.backtracking>0) {state.failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("", 3, 7, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (state.backtracking>0) {state.failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("", 3, 6, input);

                            throw nvae;
                        }
                        }
                        break;
                    case RULE_HEXINT:
                    case RULE_NEGINT:
                    case RULE_POSINT_WO_DUALS:
                    case RULE_DUALS:
                        {
                        alt3=2;
                        }
                        break;
                    case RULE_S:
                        {
                        alt3=1;
                        }
                        break;
                    default:
                        if (state.backtracking>0) {state.failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("", 3, 5, input);

                        throw nvae;
                    }

                    }
                    break;
                case EOF:
                case 33:
                case 34:
                case 36:
                case 39:
                case 43:
                    {
                    alt3=1;
                    }
                    break;
                default:
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 3, 2, input);

                    throw nvae;
                }

                }
                break;
            case RULE_BINS:
            case RULE_HEXINT:
            case RULE_NEGINT:
            case RULE_POSINT_WO_DUALS:
            case RULE_DUALS:
            case 25:
            case 26:
            case 27:
            case 32:
            case 38:
            case 44:
            case 46:
                {
                alt3=2;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }

            switch (alt3) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1180:1: ( ( rule__DeclType__Group_4_0__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1180:1: ( ( rule__DeclType__Group_4_0__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1181:1: ( rule__DeclType__Group_4_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclTypeAccess().getGroup_4_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1182:1: ( rule__DeclType__Group_4_0__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1182:2: rule__DeclType__Group_4_0__0
                    {
                    pushFollow(FOLLOW_rule__DeclType__Group_4_0__0_in_rule__DeclType__Alternatives_42471);
                    rule__DeclType__Group_4_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclTypeAccess().getGroup_4_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1186:6: ( ( rule__DeclType__ValueAssignment_4_1 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1186:6: ( ( rule__DeclType__ValueAssignment_4_1 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1187:1: ( rule__DeclType__ValueAssignment_4_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclTypeAccess().getValueAssignment_4_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1188:1: ( rule__DeclType__ValueAssignment_4_1 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1188:2: rule__DeclType__ValueAssignment_4_1
                    {
                    pushFollow(FOLLOW_rule__DeclType__ValueAssignment_4_1_in_rule__DeclType__Alternatives_42489);
                    rule__DeclType__ValueAssignment_4_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclTypeAccess().getValueAssignment_4_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Alternatives_4"


    // $ANTLR start "rule__DeclVal__Alternatives_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1197:1: rule__DeclVal__Alternatives_1 : ( ( ( rule__DeclVal__Group_1_0__0 ) ) | ( ( rule__DeclVal__Group_1_1__0 ) ) | ( ( rule__DeclVal__Group_1_2__0 ) ) );
    public final void rule__DeclVal__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1201:1: ( ( ( rule__DeclVal__Group_1_0__0 ) ) | ( ( rule__DeclVal__Group_1_1__0 ) ) | ( ( rule__DeclVal__Group_1_2__0 ) ) )
            int alt4=3;
            alt4 = dfa4.predict(input);
            switch (alt4) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1202:1: ( ( rule__DeclVal__Group_1_0__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1202:1: ( ( rule__DeclVal__Group_1_0__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1203:1: ( rule__DeclVal__Group_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getGroup_1_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1204:1: ( rule__DeclVal__Group_1_0__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1204:2: rule__DeclVal__Group_1_0__0
                    {
                    pushFollow(FOLLOW_rule__DeclVal__Group_1_0__0_in_rule__DeclVal__Alternatives_12522);
                    rule__DeclVal__Group_1_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getGroup_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1208:6: ( ( rule__DeclVal__Group_1_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1208:6: ( ( rule__DeclVal__Group_1_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1209:1: ( rule__DeclVal__Group_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getGroup_1_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1210:1: ( rule__DeclVal__Group_1_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1210:2: rule__DeclVal__Group_1_1__0
                    {
                    pushFollow(FOLLOW_rule__DeclVal__Group_1_1__0_in_rule__DeclVal__Alternatives_12540);
                    rule__DeclVal__Group_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getGroup_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1214:6: ( ( rule__DeclVal__Group_1_2__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1214:6: ( ( rule__DeclVal__Group_1_2__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1215:1: ( rule__DeclVal__Group_1_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getGroup_1_2()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1216:1: ( rule__DeclVal__Group_1_2__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1216:2: rule__DeclVal__Group_1_2__0
                    {
                    pushFollow(FOLLOW_rule__DeclVal__Group_1_2__0_in_rule__DeclVal__Alternatives_12558);
                    rule__DeclVal__Group_1_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getGroup_1_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Alternatives_1"


    // $ANTLR start "rule__DeclVal__Alternatives_1_0_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1225:1: rule__DeclVal__Alternatives_1_0_0_0 : ( ( ( rule__DeclVal__NameAssignment_1_0_0_0_0 ) ) | ( ( rule__DeclVal__NameAssignment_1_0_0_0_1 ) ) );
    public final void rule__DeclVal__Alternatives_1_0_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1229:1: ( ( ( rule__DeclVal__NameAssignment_1_0_0_0_0 ) ) | ( ( rule__DeclVal__NameAssignment_1_0_0_0_1 ) ) )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( ((LA5_0>=RULE_ID && LA5_0<=RULE_S)) ) {
                alt5=1;
            }
            else if ( ((LA5_0>=RULE_USCORE && LA5_0<=RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER)) ) {
                alt5=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1230:1: ( ( rule__DeclVal__NameAssignment_1_0_0_0_0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1230:1: ( ( rule__DeclVal__NameAssignment_1_0_0_0_0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1231:1: ( rule__DeclVal__NameAssignment_1_0_0_0_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getNameAssignment_1_0_0_0_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1232:1: ( rule__DeclVal__NameAssignment_1_0_0_0_0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1232:2: rule__DeclVal__NameAssignment_1_0_0_0_0
                    {
                    pushFollow(FOLLOW_rule__DeclVal__NameAssignment_1_0_0_0_0_in_rule__DeclVal__Alternatives_1_0_0_02591);
                    rule__DeclVal__NameAssignment_1_0_0_0_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getNameAssignment_1_0_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1236:6: ( ( rule__DeclVal__NameAssignment_1_0_0_0_1 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1236:6: ( ( rule__DeclVal__NameAssignment_1_0_0_0_1 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1237:1: ( rule__DeclVal__NameAssignment_1_0_0_0_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getNameAssignment_1_0_0_0_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1238:1: ( rule__DeclVal__NameAssignment_1_0_0_0_1 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1238:2: rule__DeclVal__NameAssignment_1_0_0_0_1
                    {
                    pushFollow(FOLLOW_rule__DeclVal__NameAssignment_1_0_0_0_1_in_rule__DeclVal__Alternatives_1_0_0_02609);
                    rule__DeclVal__NameAssignment_1_0_0_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getNameAssignment_1_0_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Alternatives_1_0_0_0"


    // $ANTLR start "rule__DeclVal__NameAlternatives_1_0_0_0_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1247:1: rule__DeclVal__NameAlternatives_1_0_0_0_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__DeclVal__NameAlternatives_1_0_0_0_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1251:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==RULE_ID) ) {
                alt6=1;
            }
            else if ( (LA6_0==RULE_S) ) {
                alt6=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1252:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1252:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1253:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getNameIDTerminalRuleCall_1_0_0_0_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DeclVal__NameAlternatives_1_0_0_0_0_02642); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getNameIDTerminalRuleCall_1_0_0_0_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1258:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1258:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1259:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getNameSTerminalRuleCall_1_0_0_0_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__DeclVal__NameAlternatives_1_0_0_0_0_02659); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getNameSTerminalRuleCall_1_0_0_0_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__NameAlternatives_1_0_0_0_0_0"


    // $ANTLR start "rule__DeclVal__AttrAlternatives_1_0_0_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1269:1: rule__DeclVal__AttrAlternatives_1_0_0_1_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__DeclVal__AttrAlternatives_1_0_0_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1273:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==RULE_ID) ) {
                alt7=1;
            }
            else if ( (LA7_0==RULE_S) ) {
                alt7=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1274:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1274:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1275:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getAttrIDTerminalRuleCall_1_0_0_1_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DeclVal__AttrAlternatives_1_0_0_1_02691); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getAttrIDTerminalRuleCall_1_0_0_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1280:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1280:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1281:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getAttrSTerminalRuleCall_1_0_0_1_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__DeclVal__AttrAlternatives_1_0_0_1_02708); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getAttrSTerminalRuleCall_1_0_0_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__AttrAlternatives_1_0_0_1_0"


    // $ANTLR start "rule__DeclVal__AttrAlternatives_1_1_0_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1291:1: rule__DeclVal__AttrAlternatives_1_1_0_1_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__DeclVal__AttrAlternatives_1_1_0_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1295:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==RULE_ID) ) {
                alt8=1;
            }
            else if ( (LA8_0==RULE_S) ) {
                alt8=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1296:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1296:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1297:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getAttrIDTerminalRuleCall_1_1_0_1_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DeclVal__AttrAlternatives_1_1_0_1_02740); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getAttrIDTerminalRuleCall_1_1_0_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1302:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1302:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1303:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getAttrSTerminalRuleCall_1_1_0_1_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__DeclVal__AttrAlternatives_1_1_0_1_02757); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getAttrSTerminalRuleCall_1_1_0_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__AttrAlternatives_1_1_0_1_0"


    // $ANTLR start "rule__DeclVal__NameAlternatives_1_2_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1313:1: rule__DeclVal__NameAlternatives_1_2_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__DeclVal__NameAlternatives_1_2_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1317:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==RULE_ID) ) {
                alt9=1;
            }
            else if ( (LA9_0==RULE_S) ) {
                alt9=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1318:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1318:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1319:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getNameIDTerminalRuleCall_1_2_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DeclVal__NameAlternatives_1_2_0_02789); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getNameIDTerminalRuleCall_1_2_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1324:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1324:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1325:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getNameSTerminalRuleCall_1_2_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__DeclVal__NameAlternatives_1_2_0_02806); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getNameSTerminalRuleCall_1_2_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__NameAlternatives_1_2_0_0"


    // $ANTLR start "rule__DeclVal__Alternatives_1_2_4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1335:1: rule__DeclVal__Alternatives_1_2_4 : ( ( ( rule__DeclVal__Group_1_2_4_0__0 ) ) | ( ( ( rule__DeclVal__Group_1_2_4_1__0 ) ) ( ( rule__DeclVal__Group_1_2_4_1__0 )* ) ) );
    public final void rule__DeclVal__Alternatives_1_2_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1339:1: ( ( ( rule__DeclVal__Group_1_2_4_0__0 ) ) | ( ( ( rule__DeclVal__Group_1_2_4_1__0 ) ) ( ( rule__DeclVal__Group_1_2_4_1__0 )* ) ) )
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==37) ) {
                alt11=1;
            }
            else if ( (LA11_0==38) ) {
                alt11=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 11, 0, input);

                throw nvae;
            }
            switch (alt11) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1340:1: ( ( rule__DeclVal__Group_1_2_4_0__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1340:1: ( ( rule__DeclVal__Group_1_2_4_0__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1341:1: ( rule__DeclVal__Group_1_2_4_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getGroup_1_2_4_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1342:1: ( rule__DeclVal__Group_1_2_4_0__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1342:2: rule__DeclVal__Group_1_2_4_0__0
                    {
                    pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_0__0_in_rule__DeclVal__Alternatives_1_2_42838);
                    rule__DeclVal__Group_1_2_4_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getGroup_1_2_4_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1346:6: ( ( ( rule__DeclVal__Group_1_2_4_1__0 ) ) ( ( rule__DeclVal__Group_1_2_4_1__0 )* ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1346:6: ( ( ( rule__DeclVal__Group_1_2_4_1__0 ) ) ( ( rule__DeclVal__Group_1_2_4_1__0 )* ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1347:1: ( ( rule__DeclVal__Group_1_2_4_1__0 ) ) ( ( rule__DeclVal__Group_1_2_4_1__0 )* )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1347:1: ( ( rule__DeclVal__Group_1_2_4_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1348:1: ( rule__DeclVal__Group_1_2_4_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getGroup_1_2_4_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1349:1: ( rule__DeclVal__Group_1_2_4_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1349:2: rule__DeclVal__Group_1_2_4_1__0
                    {
                    pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_1__0_in_rule__DeclVal__Alternatives_1_2_42858);
                    rule__DeclVal__Group_1_2_4_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getGroup_1_2_4_1()); 
                    }

                    }

                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1352:1: ( ( rule__DeclVal__Group_1_2_4_1__0 )* )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1353:1: ( rule__DeclVal__Group_1_2_4_1__0 )*
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDeclValAccess().getGroup_1_2_4_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1354:1: ( rule__DeclVal__Group_1_2_4_1__0 )*
                    loop10:
                    do {
                        int alt10=2;
                        int LA10_0 = input.LA(1);

                        if ( (LA10_0==38) ) {
                            alt10=1;
                        }


                        switch (alt10) {
                    	case 1 :
                    	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1354:2: rule__DeclVal__Group_1_2_4_1__0
                    	    {
                    	    pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_1__0_in_rule__DeclVal__Alternatives_1_2_42870);
                    	    rule__DeclVal__Group_1_2_4_1__0();

                    	    state._fsp--;
                    	    if (state.failed) return ;

                    	    }
                    	    break;

                    	default :
                    	    break loop10;
                        }
                    } while (true);

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDeclValAccess().getGroup_1_2_4_1()); 
                    }

                    }


                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Alternatives_1_2_4"


    // $ANTLR start "rule__TyVar__NameAlternatives_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1364:1: rule__TyVar__NameAlternatives_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__TyVar__NameAlternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1368:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==RULE_ID) ) {
                alt12=1;
            }
            else if ( (LA12_0==RULE_S) ) {
                alt12=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 12, 0, input);

                throw nvae;
            }
            switch (alt12) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1369:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1369:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1370:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyVarAccess().getNameIDTerminalRuleCall_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TyVar__NameAlternatives_02906); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyVarAccess().getNameIDTerminalRuleCall_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1375:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1375:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1376:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyVarAccess().getNameSTerminalRuleCall_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__TyVar__NameAlternatives_02923); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyVarAccess().getNameSTerminalRuleCall_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVar__NameAlternatives_0"


    // $ANTLR start "rule__Ty__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1386:1: rule__Ty__Alternatives : ( ( ( rule__Ty__ValueAssignment_0 ) ) | ( ( rule__Ty__Group_1__0 ) ) | ( ( rule__Ty__Group_2__0 ) ) | ( ( rule__Ty__Group_3__0 ) ) | ( ( rule__Ty__Group_4__0 ) ) | ( ( rule__Ty__Group_5__0 ) ) | ( ( rule__Ty__Group_6__0 ) ) | ( ( rule__Ty__Group_7__0 ) ) );
    public final void rule__Ty__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1390:1: ( ( ( rule__Ty__ValueAssignment_0 ) ) | ( ( rule__Ty__Group_1__0 ) ) | ( ( rule__Ty__Group_2__0 ) ) | ( ( rule__Ty__Group_3__0 ) ) | ( ( rule__Ty__Group_4__0 ) ) | ( ( rule__Ty__Group_5__0 ) ) | ( ( rule__Ty__Group_6__0 ) ) | ( ( rule__Ty__Group_7__0 ) ) )
            int alt13=8;
            alt13 = dfa13.predict(input);
            switch (alt13) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1391:1: ( ( rule__Ty__ValueAssignment_0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1391:1: ( ( rule__Ty__ValueAssignment_0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1392:1: ( rule__Ty__ValueAssignment_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getValueAssignment_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1393:1: ( rule__Ty__ValueAssignment_0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1393:2: rule__Ty__ValueAssignment_0
                    {
                    pushFollow(FOLLOW_rule__Ty__ValueAssignment_0_in_rule__Ty__Alternatives2955);
                    rule__Ty__ValueAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getValueAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1397:6: ( ( rule__Ty__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1397:6: ( ( rule__Ty__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1398:1: ( rule__Ty__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1399:1: ( rule__Ty__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1399:2: rule__Ty__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_1__0_in_rule__Ty__Alternatives2973);
                    rule__Ty__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1403:6: ( ( rule__Ty__Group_2__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1403:6: ( ( rule__Ty__Group_2__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1404:1: ( rule__Ty__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getGroup_2()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1405:1: ( rule__Ty__Group_2__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1405:2: rule__Ty__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_2__0_in_rule__Ty__Alternatives2991);
                    rule__Ty__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1409:6: ( ( rule__Ty__Group_3__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1409:6: ( ( rule__Ty__Group_3__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1410:1: ( rule__Ty__Group_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getGroup_3()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1411:1: ( rule__Ty__Group_3__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1411:2: rule__Ty__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_3__0_in_rule__Ty__Alternatives3009);
                    rule__Ty__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1415:6: ( ( rule__Ty__Group_4__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1415:6: ( ( rule__Ty__Group_4__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1416:1: ( rule__Ty__Group_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getGroup_4()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1417:1: ( rule__Ty__Group_4__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1417:2: rule__Ty__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_4__0_in_rule__Ty__Alternatives3027);
                    rule__Ty__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1421:6: ( ( rule__Ty__Group_5__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1421:6: ( ( rule__Ty__Group_5__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1422:1: ( rule__Ty__Group_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getGroup_5()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1423:1: ( rule__Ty__Group_5__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1423:2: rule__Ty__Group_5__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_5__0_in_rule__Ty__Alternatives3045);
                    rule__Ty__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getGroup_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1427:6: ( ( rule__Ty__Group_6__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1427:6: ( ( rule__Ty__Group_6__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1428:1: ( rule__Ty__Group_6__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getGroup_6()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1429:1: ( rule__Ty__Group_6__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1429:2: rule__Ty__Group_6__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_6__0_in_rule__Ty__Alternatives3063);
                    rule__Ty__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getGroup_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1433:6: ( ( rule__Ty__Group_7__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1433:6: ( ( rule__Ty__Group_7__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1434:1: ( rule__Ty__Group_7__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getGroup_7()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1435:1: ( rule__Ty__Group_7__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1435:2: rule__Ty__Group_7__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_7__0_in_rule__Ty__Alternatives3081);
                    rule__Ty__Group_7__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getGroup_7()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Alternatives"


    // $ANTLR start "rule__Ty__ValueAlternatives_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1444:1: rule__Ty__ValueAlternatives_0_0 : ( ( ruleINTEGER ) | ( RULE_BINS ) );
    public final void rule__Ty__ValueAlternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1448:1: ( ( ruleINTEGER ) | ( RULE_BINS ) )
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==RULE_HEXINT||(LA14_0>=RULE_NEGINT && LA14_0<=RULE_DUALS)) ) {
                alt14=1;
            }
            else if ( (LA14_0==RULE_BINS) ) {
                alt14=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 14, 0, input);

                throw nvae;
            }
            switch (alt14) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1449:1: ( ruleINTEGER )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1449:1: ( ruleINTEGER )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1450:1: ruleINTEGER
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getValueINTEGERParserRuleCall_0_0_0()); 
                    }
                    pushFollow(FOLLOW_ruleINTEGER_in_rule__Ty__ValueAlternatives_0_03114);
                    ruleINTEGER();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getValueINTEGERParserRuleCall_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1455:6: ( RULE_BINS )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1455:6: ( RULE_BINS )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1456:1: RULE_BINS
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getValueBINSTerminalRuleCall_0_0_1()); 
                    }
                    match(input,RULE_BINS,FOLLOW_RULE_BINS_in_rule__Ty__ValueAlternatives_0_03131); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getValueBINSTerminalRuleCall_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__ValueAlternatives_0_0"


    // $ANTLR start "rule__Ty__Alternatives_3_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1466:1: rule__Ty__Alternatives_3_0 : ( ( ( rule__Ty__TypeRefAssignment_3_0_0 ) ) | ( ( rule__Ty__TypeAssignment_3_0_1 ) ) );
    public final void rule__Ty__Alternatives_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1470:1: ( ( ( rule__Ty__TypeRefAssignment_3_0_0 ) ) | ( ( rule__Ty__TypeAssignment_3_0_1 ) ) )
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==RULE_ID) ) {
                alt15=1;
            }
            else if ( ((LA15_0>=25 && LA15_0<=27)) ) {
                alt15=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 15, 0, input);

                throw nvae;
            }
            switch (alt15) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1471:1: ( ( rule__Ty__TypeRefAssignment_3_0_0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1471:1: ( ( rule__Ty__TypeRefAssignment_3_0_0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1472:1: ( rule__Ty__TypeRefAssignment_3_0_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getTypeRefAssignment_3_0_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1473:1: ( rule__Ty__TypeRefAssignment_3_0_0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1473:2: rule__Ty__TypeRefAssignment_3_0_0
                    {
                    pushFollow(FOLLOW_rule__Ty__TypeRefAssignment_3_0_0_in_rule__Ty__Alternatives_3_03163);
                    rule__Ty__TypeRefAssignment_3_0_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getTypeRefAssignment_3_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1477:6: ( ( rule__Ty__TypeAssignment_3_0_1 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1477:6: ( ( rule__Ty__TypeAssignment_3_0_1 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1478:1: ( rule__Ty__TypeAssignment_3_0_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getTypeAssignment_3_0_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1479:1: ( rule__Ty__TypeAssignment_3_0_1 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1479:2: rule__Ty__TypeAssignment_3_0_1
                    {
                    pushFollow(FOLLOW_rule__Ty__TypeAssignment_3_0_1_in_rule__Ty__Alternatives_3_03181);
                    rule__Ty__TypeAssignment_3_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getTypeAssignment_3_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Alternatives_3_0"


    // $ANTLR start "rule__Ty__TypeAlternatives_3_0_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1488:1: rule__Ty__TypeAlternatives_3_0_1_0 : ( ( 'int' ) | ( 'string' ) | ( 'unit' ) );
    public final void rule__Ty__TypeAlternatives_3_0_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1492:1: ( ( 'int' ) | ( 'string' ) | ( 'unit' ) )
            int alt16=3;
            switch ( input.LA(1) ) {
            case 25:
                {
                alt16=1;
                }
                break;
            case 26:
                {
                alt16=2;
                }
                break;
            case 27:
                {
                alt16=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;
            }

            switch (alt16) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1493:1: ( 'int' )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1493:1: ( 'int' )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1494:1: 'int'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getTypeIntKeyword_3_0_1_0_0()); 
                    }
                    match(input,25,FOLLOW_25_in_rule__Ty__TypeAlternatives_3_0_1_03215); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getTypeIntKeyword_3_0_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1501:6: ( 'string' )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1501:6: ( 'string' )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1502:1: 'string'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getTypeStringKeyword_3_0_1_0_1()); 
                    }
                    match(input,26,FOLLOW_26_in_rule__Ty__TypeAlternatives_3_0_1_03235); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getTypeStringKeyword_3_0_1_0_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1509:6: ( 'unit' )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1509:6: ( 'unit' )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1510:1: 'unit'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyAccess().getTypeUnitKeyword_3_0_1_0_2()); 
                    }
                    match(input,27,FOLLOW_27_in_rule__Ty__TypeAlternatives_3_0_1_03255); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyAccess().getTypeUnitKeyword_3_0_1_0_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__TypeAlternatives_3_0_1_0"


    // $ANTLR start "rule__TyBind__NameAlternatives_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1522:1: rule__TyBind__NameAlternatives_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__TyBind__NameAlternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1526:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt17=2;
            int LA17_0 = input.LA(1);

            if ( (LA17_0==RULE_ID) ) {
                alt17=1;
            }
            else if ( (LA17_0==RULE_S) ) {
                alt17=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 17, 0, input);

                throw nvae;
            }
            switch (alt17) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1527:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1527:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1528:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyBindAccess().getNameIDTerminalRuleCall_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TyBind__NameAlternatives_0_03289); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyBindAccess().getNameIDTerminalRuleCall_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1533:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1533:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1534:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyBindAccess().getNameSTerminalRuleCall_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__TyBind__NameAlternatives_0_03306); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyBindAccess().getNameSTerminalRuleCall_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__NameAlternatives_0_0"


    // $ANTLR start "rule__TyElement__NameAlternatives_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1544:1: rule__TyElement__NameAlternatives_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__TyElement__NameAlternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1548:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt18=2;
            int LA18_0 = input.LA(1);

            if ( (LA18_0==RULE_ID) ) {
                alt18=1;
            }
            else if ( (LA18_0==RULE_S) ) {
                alt18=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 18, 0, input);

                throw nvae;
            }
            switch (alt18) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1549:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1549:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1550:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyElementAccess().getNameIDTerminalRuleCall_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TyElement__NameAlternatives_0_03338); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyElementAccess().getNameIDTerminalRuleCall_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1555:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1555:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1556:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTyElementAccess().getNameSTerminalRuleCall_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__TyElement__NameAlternatives_0_03355); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTyElementAccess().getNameSTerminalRuleCall_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyElement__NameAlternatives_0_0"


    // $ANTLR start "rule__Exp__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1566:1: rule__Exp__Alternatives : ( ( ( rule__Exp__NameAssignment_0 ) ) | ( ( ( rule__Exp__Group_1__0 ) ) ( ( rule__Exp__Group_1__0 )* ) ) );
    public final void rule__Exp__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1570:1: ( ( ( rule__Exp__NameAssignment_0 ) ) | ( ( ( rule__Exp__Group_1__0 ) ) ( ( rule__Exp__Group_1__0 )* ) ) )
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( ((LA20_0>=RULE_ID && LA20_0<=RULE_S)||LA20_0==RULE_HEXINT||(LA20_0>=RULE_NEGINT && LA20_0<=RULE_STRING)||LA20_0==44||LA20_0==46||(LA20_0>=55 && LA20_0<=56)||(LA20_0>=58 && LA20_0<=62)||LA20_0==65) ) {
                alt20=1;
            }
            else if ( ((LA20_0>=RULE_MIXID && LA20_0<=RULE_USCORE)) ) {
                alt20=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 20, 0, input);

                throw nvae;
            }
            switch (alt20) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1571:1: ( ( rule__Exp__NameAssignment_0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1571:1: ( ( rule__Exp__NameAssignment_0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1572:1: ( rule__Exp__NameAssignment_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExpAccess().getNameAssignment_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1573:1: ( rule__Exp__NameAssignment_0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1573:2: rule__Exp__NameAssignment_0
                    {
                    pushFollow(FOLLOW_rule__Exp__NameAssignment_0_in_rule__Exp__Alternatives3387);
                    rule__Exp__NameAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExpAccess().getNameAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1577:6: ( ( ( rule__Exp__Group_1__0 ) ) ( ( rule__Exp__Group_1__0 )* ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1577:6: ( ( ( rule__Exp__Group_1__0 ) ) ( ( rule__Exp__Group_1__0 )* ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1578:1: ( ( rule__Exp__Group_1__0 ) ) ( ( rule__Exp__Group_1__0 )* )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1578:1: ( ( rule__Exp__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1579:1: ( rule__Exp__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExpAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1580:1: ( rule__Exp__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1580:2: rule__Exp__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Exp__Group_1__0_in_rule__Exp__Alternatives3407);
                    rule__Exp__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExpAccess().getGroup_1()); 
                    }

                    }

                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1583:1: ( ( rule__Exp__Group_1__0 )* )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1584:1: ( rule__Exp__Group_1__0 )*
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExpAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1585:1: ( rule__Exp__Group_1__0 )*
                    loop19:
                    do {
                        int alt19=2;
                        int LA19_0 = input.LA(1);

                        if ( ((LA19_0>=RULE_MIXID && LA19_0<=RULE_USCORE)) ) {
                            alt19=1;
                        }


                        switch (alt19) {
                    	case 1 :
                    	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1585:2: rule__Exp__Group_1__0
                    	    {
                    	    pushFollow(FOLLOW_rule__Exp__Group_1__0_in_rule__Exp__Alternatives3419);
                    	    rule__Exp__Group_1__0();

                    	    state._fsp--;
                    	    if (state.failed) return ;

                    	    }
                    	    break;

                    	default :
                    	    break loop19;
                        }
                    } while (true);

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExpAccess().getGroup_1()); 
                    }

                    }


                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exp__Alternatives"


    // $ANTLR start "rule__CaseExp__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1595:1: rule__CaseExp__Alternatives : ( ( ruleClosedExp ) | ( ( rule__CaseExp__Group_1__0 ) ) );
    public final void rule__CaseExp__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1599:1: ( ( ruleClosedExp ) | ( ( rule__CaseExp__Group_1__0 ) ) )
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( ((LA21_0>=RULE_ID && LA21_0<=RULE_S)||LA21_0==RULE_HEXINT||(LA21_0>=RULE_NEGINT && LA21_0<=RULE_STRING)||LA21_0==44||LA21_0==46||(LA21_0>=55 && LA21_0<=56)||(LA21_0>=58 && LA21_0<=59)||(LA21_0>=61 && LA21_0<=62)||LA21_0==65) ) {
                alt21=1;
            }
            else if ( (LA21_0==60) ) {
                alt21=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 21, 0, input);

                throw nvae;
            }
            switch (alt21) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1600:1: ( ruleClosedExp )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1600:1: ( ruleClosedExp )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1601:1: ruleClosedExp
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCaseExpAccess().getClosedExpParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleClosedExp_in_rule__CaseExp__Alternatives3455);
                    ruleClosedExp();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCaseExpAccess().getClosedExpParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1606:6: ( ( rule__CaseExp__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1606:6: ( ( rule__CaseExp__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1607:1: ( rule__CaseExp__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCaseExpAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1608:1: ( rule__CaseExp__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1608:2: rule__CaseExp__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__CaseExp__Group_1__0_in_rule__CaseExp__Alternatives3472);
                    rule__CaseExp__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCaseExpAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Alternatives"


    // $ANTLR start "rule__ClosedExp__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1617:1: rule__ClosedExp__Alternatives : ( ( ruleOrElseExp ) | ( ( rule__ClosedExp__Group_1__0 ) ) | ( ( rule__ClosedExp__Group_2__0 ) ) );
    public final void rule__ClosedExp__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1621:1: ( ( ruleOrElseExp ) | ( ( rule__ClosedExp__Group_1__0 ) ) | ( ( rule__ClosedExp__Group_2__0 ) ) )
            int alt22=3;
            switch ( input.LA(1) ) {
            case RULE_ID:
            case RULE_S:
            case RULE_HEXINT:
            case RULE_NEGINT:
            case RULE_POSINT_WO_DUALS:
            case RULE_DUALS:
            case RULE_STRING:
            case 44:
            case 46:
            case 55:
            case 56:
            case 58:
            case 59:
            case 65:
                {
                alt22=1;
                }
                break;
            case 61:
                {
                alt22=2;
                }
                break;
            case 62:
                {
                alt22=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 22, 0, input);

                throw nvae;
            }

            switch (alt22) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1622:1: ( ruleOrElseExp )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1622:1: ( ruleOrElseExp )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1623:1: ruleOrElseExp
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getClosedExpAccess().getOrElseExpParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleOrElseExp_in_rule__ClosedExp__Alternatives3505);
                    ruleOrElseExp();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getClosedExpAccess().getOrElseExpParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1628:6: ( ( rule__ClosedExp__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1628:6: ( ( rule__ClosedExp__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1629:1: ( rule__ClosedExp__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getClosedExpAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1630:1: ( rule__ClosedExp__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1630:2: rule__ClosedExp__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__ClosedExp__Group_1__0_in_rule__ClosedExp__Alternatives3522);
                    rule__ClosedExp__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getClosedExpAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1634:6: ( ( rule__ClosedExp__Group_2__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1634:6: ( ( rule__ClosedExp__Group_2__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1635:1: ( rule__ClosedExp__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getClosedExpAccess().getGroup_2()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1636:1: ( rule__ClosedExp__Group_2__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1636:2: rule__ClosedExp__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__ClosedExp__Group_2__0_in_rule__ClosedExp__Alternatives3540);
                    rule__ClosedExp__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getClosedExpAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Alternatives"


    // $ANTLR start "rule__MonadicExp__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1645:1: rule__MonadicExp__Alternatives : ( ( ( rule__MonadicExp__ExpAssignment_0 ) ) | ( ( rule__MonadicExp__Group_1__0 ) ) );
    public final void rule__MonadicExp__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1649:1: ( ( ( rule__MonadicExp__ExpAssignment_0 ) ) | ( ( rule__MonadicExp__Group_1__0 ) ) )
            int alt23=2;
            switch ( input.LA(1) ) {
            case RULE_HEXINT:
            case RULE_MIXID:
            case RULE_USCORE:
            case RULE_NEGINT:
            case RULE_POSINT_WO_DUALS:
            case RULE_DUALS:
            case RULE_STRING:
            case 44:
            case 46:
            case 55:
            case 56:
            case 58:
            case 59:
            case 60:
            case 61:
            case 62:
            case 65:
                {
                alt23=1;
                }
                break;
            case RULE_ID:
                {
                int LA23_2 = input.LA(2);

                if ( (LA23_2==53) ) {
                    alt23=2;
                }
                else if ( (LA23_2==EOF||(LA23_2>=RULE_ID && LA23_2<=RULE_S)||LA23_2==RULE_HEXINT||(LA23_2>=RULE_USCORE && LA23_2<=RULE_STRING)||(LA23_2>=28 && LA23_2<=33)||LA23_2==44||LA23_2==46||LA23_2==50||LA23_2==54||LA23_2==56||(LA23_2>=58 && LA23_2<=59)||(LA23_2>=63 && LA23_2<=65)) ) {
                    alt23=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 23, 2, input);

                    throw nvae;
                }
                }
                break;
            case RULE_S:
                {
                int LA23_3 = input.LA(2);

                if ( (LA23_3==53) ) {
                    alt23=2;
                }
                else if ( (LA23_3==EOF||(LA23_3>=RULE_ID && LA23_3<=RULE_S)||LA23_3==RULE_HEXINT||(LA23_3>=RULE_USCORE && LA23_3<=RULE_STRING)||(LA23_3>=28 && LA23_3<=33)||LA23_3==44||LA23_3==46||LA23_3==50||LA23_3==54||LA23_3==56||(LA23_3>=58 && LA23_3<=59)||(LA23_3>=63 && LA23_3<=65)) ) {
                    alt23=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 23, 3, input);

                    throw nvae;
                }
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 23, 0, input);

                throw nvae;
            }

            switch (alt23) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1650:1: ( ( rule__MonadicExp__ExpAssignment_0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1650:1: ( ( rule__MonadicExp__ExpAssignment_0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1651:1: ( rule__MonadicExp__ExpAssignment_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMonadicExpAccess().getExpAssignment_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1652:1: ( rule__MonadicExp__ExpAssignment_0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1652:2: rule__MonadicExp__ExpAssignment_0
                    {
                    pushFollow(FOLLOW_rule__MonadicExp__ExpAssignment_0_in_rule__MonadicExp__Alternatives3573);
                    rule__MonadicExp__ExpAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMonadicExpAccess().getExpAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1656:6: ( ( rule__MonadicExp__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1656:6: ( ( rule__MonadicExp__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1657:1: ( rule__MonadicExp__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMonadicExpAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1658:1: ( rule__MonadicExp__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1658:2: rule__MonadicExp__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__MonadicExp__Group_1__0_in_rule__MonadicExp__Alternatives3591);
                    rule__MonadicExp__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMonadicExpAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__Alternatives"


    // $ANTLR start "rule__MonadicExp__NameAlternatives_1_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1667:1: rule__MonadicExp__NameAlternatives_1_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__MonadicExp__NameAlternatives_1_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1671:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt24=2;
            int LA24_0 = input.LA(1);

            if ( (LA24_0==RULE_ID) ) {
                alt24=1;
            }
            else if ( (LA24_0==RULE_S) ) {
                alt24=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 24, 0, input);

                throw nvae;
            }
            switch (alt24) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1672:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1672:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1673:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMonadicExpAccess().getNameIDTerminalRuleCall_1_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__MonadicExp__NameAlternatives_1_0_03624); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMonadicExpAccess().getNameIDTerminalRuleCall_1_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1678:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1678:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1679:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMonadicExpAccess().getNameSTerminalRuleCall_1_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__MonadicExp__NameAlternatives_1_0_03641); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMonadicExpAccess().getNameSTerminalRuleCall_1_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__NameAlternatives_1_0_0"


    // $ANTLR start "rule__AExp__SignAlternatives_1_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1689:1: rule__AExp__SignAlternatives_1_0_0 : ( ( '+' ) | ( '-' ) );
    public final void rule__AExp__SignAlternatives_1_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1693:1: ( ( '+' ) | ( '-' ) )
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( (LA25_0==28) ) {
                alt25=1;
            }
            else if ( (LA25_0==29) ) {
                alt25=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 25, 0, input);

                throw nvae;
            }
            switch (alt25) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1694:1: ( '+' )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1694:1: ( '+' )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1695:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAExpAccess().getSignPlusSignKeyword_1_0_0_0()); 
                    }
                    match(input,28,FOLLOW_28_in_rule__AExp__SignAlternatives_1_0_03674); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAExpAccess().getSignPlusSignKeyword_1_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1702:6: ( '-' )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1702:6: ( '-' )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1703:1: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAExpAccess().getSignHyphenMinusKeyword_1_0_0_1()); 
                    }
                    match(input,29,FOLLOW_29_in_rule__AExp__SignAlternatives_1_0_03694); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAExpAccess().getSignHyphenMinusKeyword_1_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__SignAlternatives_1_0_0"


    // $ANTLR start "rule__MExp__SymbolAlternatives_1_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1715:1: rule__MExp__SymbolAlternatives_1_0_0 : ( ( '*' ) | ( '%' ) );
    public final void rule__MExp__SymbolAlternatives_1_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1719:1: ( ( '*' ) | ( '%' ) )
            int alt26=2;
            int LA26_0 = input.LA(1);

            if ( (LA26_0==30) ) {
                alt26=1;
            }
            else if ( (LA26_0==31) ) {
                alt26=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 26, 0, input);

                throw nvae;
            }
            switch (alt26) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1720:1: ( '*' )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1720:1: ( '*' )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1721:1: '*'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMExpAccess().getSymbolAsteriskKeyword_1_0_0_0()); 
                    }
                    match(input,30,FOLLOW_30_in_rule__MExp__SymbolAlternatives_1_0_03729); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMExpAccess().getSymbolAsteriskKeyword_1_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1728:6: ( '%' )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1728:6: ( '%' )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1729:1: '%'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMExpAccess().getSymbolPercentSignKeyword_1_0_0_1()); 
                    }
                    match(input,31,FOLLOW_31_in_rule__MExp__SymbolAlternatives_1_0_03749); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMExpAccess().getSymbolPercentSignKeyword_1_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__SymbolAlternatives_1_0_0"


    // $ANTLR start "rule__ApplyExp__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1741:1: rule__ApplyExp__Alternatives : ( ( ( rule__ApplyExp__Group_0__0 ) ) | ( ( rule__ApplyExp__Group_1__0 ) ) );
    public final void rule__ApplyExp__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1745:1: ( ( ( rule__ApplyExp__Group_0__0 ) ) | ( ( rule__ApplyExp__Group_1__0 ) ) )
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==55) ) {
                alt27=1;
            }
            else if ( ((LA27_0>=RULE_ID && LA27_0<=RULE_S)||LA27_0==RULE_HEXINT||(LA27_0>=RULE_NEGINT && LA27_0<=RULE_STRING)||LA27_0==44||LA27_0==46||LA27_0==56||(LA27_0>=58 && LA27_0<=59)||LA27_0==65) ) {
                alt27=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 27, 0, input);

                throw nvae;
            }
            switch (alt27) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1746:1: ( ( rule__ApplyExp__Group_0__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1746:1: ( ( rule__ApplyExp__Group_0__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1747:1: ( rule__ApplyExp__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getApplyExpAccess().getGroup_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1748:1: ( rule__ApplyExp__Group_0__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1748:2: rule__ApplyExp__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__ApplyExp__Group_0__0_in_rule__ApplyExp__Alternatives3783);
                    rule__ApplyExp__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getApplyExpAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1752:6: ( ( rule__ApplyExp__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1752:6: ( ( rule__ApplyExp__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1753:1: ( rule__ApplyExp__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getApplyExpAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1754:1: ( rule__ApplyExp__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1754:2: rule__ApplyExp__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__ApplyExp__Group_1__0_in_rule__ApplyExp__Alternatives3801);
                    rule__ApplyExp__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getApplyExpAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__Alternatives"


    // $ANTLR start "rule__Args__Alternatives_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1763:1: rule__Args__Alternatives_1 : ( ( ( rule__Args__ArgsAssignment_1_0 )* ) | ( '()' ) );
    public final void rule__Args__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1767:1: ( ( ( rule__Args__ArgsAssignment_1_0 )* ) | ( '()' ) )
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==EOF||(LA29_0>=RULE_ID && LA29_0<=RULE_S)||(LA29_0>=RULE_HEXINT && LA29_0<=RULE_STRING)||(LA29_0>=28 && LA29_0<=31)||(LA29_0>=33 && LA29_0<=34)||(LA29_0>=36 && LA29_0<=39)||(LA29_0>=42 && LA29_0<=47)||(LA29_0>=50 && LA29_0<=52)||LA29_0==54||(LA29_0>=56 && LA29_0<=59)||(LA29_0>=63 && LA29_0<=65)) ) {
                alt29=1;
            }
            else if ( (LA29_0==32) ) {
                alt29=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 29, 0, input);

                throw nvae;
            }
            switch (alt29) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1768:1: ( ( rule__Args__ArgsAssignment_1_0 )* )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1768:1: ( ( rule__Args__ArgsAssignment_1_0 )* )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1769:1: ( rule__Args__ArgsAssignment_1_0 )*
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getArgsAccess().getArgsAssignment_1_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1770:1: ( rule__Args__ArgsAssignment_1_0 )*
                    loop28:
                    do {
                        int alt28=2;
                        int LA28_0 = input.LA(1);

                        if ( ((LA28_0>=RULE_ID && LA28_0<=RULE_S)||LA28_0==RULE_HEXINT||(LA28_0>=RULE_NEGINT && LA28_0<=RULE_STRING)||LA28_0==44||LA28_0==46||LA28_0==56||(LA28_0>=58 && LA28_0<=59)||LA28_0==65) ) {
                            alt28=1;
                        }


                        switch (alt28) {
                    	case 1 :
                    	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1770:2: rule__Args__ArgsAssignment_1_0
                    	    {
                    	    pushFollow(FOLLOW_rule__Args__ArgsAssignment_1_0_in_rule__Args__Alternatives_13834);
                    	    rule__Args__ArgsAssignment_1_0();

                    	    state._fsp--;
                    	    if (state.failed) return ;

                    	    }
                    	    break;

                    	default :
                    	    break loop28;
                        }
                    } while (true);

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getArgsAccess().getArgsAssignment_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1774:6: ( '()' )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1774:6: ( '()' )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1775:1: '()'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getArgsAccess().getLeftParenthesisRightParenthesisKeyword_1_1()); 
                    }
                    match(input,32,FOLLOW_32_in_rule__Args__Alternatives_13854); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getArgsAccess().getLeftParenthesisRightParenthesisKeyword_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Args__Alternatives_1"


    // $ANTLR start "rule__AtomicExp__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1787:1: rule__AtomicExp__Alternatives : ( ( ( rule__AtomicExp__NameAssignment_0 ) ) | ( ( rule__AtomicExp__NameAssignment_1 ) ) | ( ( rule__AtomicExp__Group_2__0 ) ) | ( ( rule__AtomicExp__Group_3__0 ) ) | ( ( rule__AtomicExp__Group_4__0 ) ) | ( ( rule__AtomicExp__Group_5__0 ) ) | ( ( rule__AtomicExp__Group_6__0 ) ) | ( ( rule__AtomicExp__Group_7__0 ) ) );
    public final void rule__AtomicExp__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1791:1: ( ( ( rule__AtomicExp__NameAssignment_0 ) ) | ( ( rule__AtomicExp__NameAssignment_1 ) ) | ( ( rule__AtomicExp__Group_2__0 ) ) | ( ( rule__AtomicExp__Group_3__0 ) ) | ( ( rule__AtomicExp__Group_4__0 ) ) | ( ( rule__AtomicExp__Group_5__0 ) ) | ( ( rule__AtomicExp__Group_6__0 ) ) | ( ( rule__AtomicExp__Group_7__0 ) ) )
            int alt30=8;
            switch ( input.LA(1) ) {
            case RULE_HEXINT:
            case RULE_NEGINT:
            case RULE_POSINT_WO_DUALS:
            case RULE_DUALS:
            case 58:
                {
                alt30=1;
                }
                break;
            case RULE_STRING:
                {
                alt30=2;
                }
                break;
            case RULE_ID:
            case RULE_S:
                {
                alt30=3;
                }
                break;
            case 59:
                {
                alt30=4;
                }
                break;
            case 56:
                {
                alt30=5;
                }
                break;
            case 46:
                {
                alt30=6;
                }
                break;
            case 44:
                {
                alt30=7;
                }
                break;
            case 65:
                {
                alt30=8;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 30, 0, input);

                throw nvae;
            }

            switch (alt30) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1792:1: ( ( rule__AtomicExp__NameAssignment_0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1792:1: ( ( rule__AtomicExp__NameAssignment_0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1793:1: ( rule__AtomicExp__NameAssignment_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getNameAssignment_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1794:1: ( rule__AtomicExp__NameAssignment_0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1794:2: rule__AtomicExp__NameAssignment_0
                    {
                    pushFollow(FOLLOW_rule__AtomicExp__NameAssignment_0_in_rule__AtomicExp__Alternatives3888);
                    rule__AtomicExp__NameAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getNameAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1798:6: ( ( rule__AtomicExp__NameAssignment_1 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1798:6: ( ( rule__AtomicExp__NameAssignment_1 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1799:1: ( rule__AtomicExp__NameAssignment_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getNameAssignment_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1800:1: ( rule__AtomicExp__NameAssignment_1 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1800:2: rule__AtomicExp__NameAssignment_1
                    {
                    pushFollow(FOLLOW_rule__AtomicExp__NameAssignment_1_in_rule__AtomicExp__Alternatives3906);
                    rule__AtomicExp__NameAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getNameAssignment_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1804:6: ( ( rule__AtomicExp__Group_2__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1804:6: ( ( rule__AtomicExp__Group_2__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1805:1: ( rule__AtomicExp__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getGroup_2()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1806:1: ( rule__AtomicExp__Group_2__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1806:2: rule__AtomicExp__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__AtomicExp__Group_2__0_in_rule__AtomicExp__Alternatives3924);
                    rule__AtomicExp__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1810:6: ( ( rule__AtomicExp__Group_3__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1810:6: ( ( rule__AtomicExp__Group_3__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1811:1: ( rule__AtomicExp__Group_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getGroup_3()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1812:1: ( rule__AtomicExp__Group_3__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1812:2: rule__AtomicExp__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__AtomicExp__Group_3__0_in_rule__AtomicExp__Alternatives3942);
                    rule__AtomicExp__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1816:6: ( ( rule__AtomicExp__Group_4__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1816:6: ( ( rule__AtomicExp__Group_4__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1817:1: ( rule__AtomicExp__Group_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getGroup_4()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1818:1: ( rule__AtomicExp__Group_4__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1818:2: rule__AtomicExp__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__AtomicExp__Group_4__0_in_rule__AtomicExp__Alternatives3960);
                    rule__AtomicExp__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1822:6: ( ( rule__AtomicExp__Group_5__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1822:6: ( ( rule__AtomicExp__Group_5__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1823:1: ( rule__AtomicExp__Group_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getGroup_5()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1824:1: ( rule__AtomicExp__Group_5__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1824:2: rule__AtomicExp__Group_5__0
                    {
                    pushFollow(FOLLOW_rule__AtomicExp__Group_5__0_in_rule__AtomicExp__Alternatives3978);
                    rule__AtomicExp__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getGroup_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1828:6: ( ( rule__AtomicExp__Group_6__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1828:6: ( ( rule__AtomicExp__Group_6__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1829:1: ( rule__AtomicExp__Group_6__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getGroup_6()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1830:1: ( rule__AtomicExp__Group_6__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1830:2: rule__AtomicExp__Group_6__0
                    {
                    pushFollow(FOLLOW_rule__AtomicExp__Group_6__0_in_rule__AtomicExp__Alternatives3996);
                    rule__AtomicExp__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getGroup_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1834:6: ( ( rule__AtomicExp__Group_7__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1834:6: ( ( rule__AtomicExp__Group_7__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1835:1: ( rule__AtomicExp__Group_7__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getGroup_7()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1836:1: ( rule__AtomicExp__Group_7__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1836:2: rule__AtomicExp__Group_7__0
                    {
                    pushFollow(FOLLOW_rule__AtomicExp__Group_7__0_in_rule__AtomicExp__Alternatives4014);
                    rule__AtomicExp__Group_7__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getGroup_7()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Alternatives"


    // $ANTLR start "rule__AtomicExp__NameAlternatives_2_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1845:1: rule__AtomicExp__NameAlternatives_2_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__AtomicExp__NameAlternatives_2_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1849:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt31=2;
            int LA31_0 = input.LA(1);

            if ( (LA31_0==RULE_ID) ) {
                alt31=1;
            }
            else if ( (LA31_0==RULE_S) ) {
                alt31=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 31, 0, input);

                throw nvae;
            }
            switch (alt31) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1850:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1850:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1851:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getNameIDTerminalRuleCall_2_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__AtomicExp__NameAlternatives_2_0_04047); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getNameIDTerminalRuleCall_2_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1856:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1856:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1857:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getNameSTerminalRuleCall_2_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__AtomicExp__NameAlternatives_2_0_04064); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getNameSTerminalRuleCall_2_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__NameAlternatives_2_0_0"


    // $ANTLR start "rule__AtomicExp__IdAlternatives_2_1_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1867:1: rule__AtomicExp__IdAlternatives_2_1_1_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__AtomicExp__IdAlternatives_2_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1871:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0==RULE_ID) ) {
                alt32=1;
            }
            else if ( (LA32_0==RULE_S) ) {
                alt32=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;
            }
            switch (alt32) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1872:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1872:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1873:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getIdIDTerminalRuleCall_2_1_1_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__AtomicExp__IdAlternatives_2_1_1_04096); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getIdIDTerminalRuleCall_2_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1878:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1878:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1879:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getIdSTerminalRuleCall_2_1_1_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__AtomicExp__IdAlternatives_2_1_1_04113); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getIdSTerminalRuleCall_2_1_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__IdAlternatives_2_1_1_0"


    // $ANTLR start "rule__AtomicExp__NameAlternatives_4_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1889:1: rule__AtomicExp__NameAlternatives_4_1_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__AtomicExp__NameAlternatives_4_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1893:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt33=2;
            int LA33_0 = input.LA(1);

            if ( (LA33_0==RULE_ID) ) {
                alt33=1;
            }
            else if ( (LA33_0==RULE_S) ) {
                alt33=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 33, 0, input);

                throw nvae;
            }
            switch (alt33) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1894:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1894:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1895:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getNameIDTerminalRuleCall_4_1_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__AtomicExp__NameAlternatives_4_1_04145); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getNameIDTerminalRuleCall_4_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1900:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1900:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1901:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getNameSTerminalRuleCall_4_1_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__AtomicExp__NameAlternatives_4_1_04162); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getNameSTerminalRuleCall_4_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__NameAlternatives_4_1_0"


    // $ANTLR start "rule__AtomicExp__IdAlternatives_5_3_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1911:1: rule__AtomicExp__IdAlternatives_5_3_1_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__AtomicExp__IdAlternatives_5_3_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1915:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt34=2;
            int LA34_0 = input.LA(1);

            if ( (LA34_0==RULE_ID) ) {
                alt34=1;
            }
            else if ( (LA34_0==RULE_S) ) {
                alt34=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 34, 0, input);

                throw nvae;
            }
            switch (alt34) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1916:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1916:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1917:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getIdIDTerminalRuleCall_5_3_1_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__AtomicExp__IdAlternatives_5_3_1_04194); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getIdIDTerminalRuleCall_5_3_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1922:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1922:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1923:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getIdSTerminalRuleCall_5_3_1_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__AtomicExp__IdAlternatives_5_3_1_04211); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getIdSTerminalRuleCall_5_3_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__IdAlternatives_5_3_1_0"


    // $ANTLR start "rule__AtomicExp__IdAlternatives_6_2_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1933:1: rule__AtomicExp__IdAlternatives_6_2_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__AtomicExp__IdAlternatives_6_2_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1937:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt35=2;
            int LA35_0 = input.LA(1);

            if ( (LA35_0==RULE_ID) ) {
                alt35=1;
            }
            else if ( (LA35_0==RULE_S) ) {
                alt35=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 35, 0, input);

                throw nvae;
            }
            switch (alt35) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1938:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1938:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1939:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getIdIDTerminalRuleCall_6_2_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__AtomicExp__IdAlternatives_6_2_0_04243); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getIdIDTerminalRuleCall_6_2_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1944:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1944:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1945:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getIdSTerminalRuleCall_6_2_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__AtomicExp__IdAlternatives_6_2_0_04260); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getIdSTerminalRuleCall_6_2_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__IdAlternatives_6_2_0_0"


    // $ANTLR start "rule__AtomicExp__IdAlternatives_6_2_3_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1955:1: rule__AtomicExp__IdAlternatives_6_2_3_1_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__AtomicExp__IdAlternatives_6_2_3_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1959:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt36=2;
            int LA36_0 = input.LA(1);

            if ( (LA36_0==RULE_ID) ) {
                alt36=1;
            }
            else if ( (LA36_0==RULE_S) ) {
                alt36=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 36, 0, input);

                throw nvae;
            }
            switch (alt36) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1960:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1960:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1961:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getIdIDTerminalRuleCall_6_2_3_1_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__AtomicExp__IdAlternatives_6_2_3_1_04292); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getIdIDTerminalRuleCall_6_2_3_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1966:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1966:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1967:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAtomicExpAccess().getIdSTerminalRuleCall_6_2_3_1_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__AtomicExp__IdAlternatives_6_2_3_1_04309); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAtomicExpAccess().getIdSTerminalRuleCall_6_2_3_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__IdAlternatives_6_2_3_1_0"


    // $ANTLR start "rule__Field__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1977:1: rule__Field__Alternatives : ( ( ( rule__Field__Group_0__0 ) ) | ( ( rule__Field__Group_1__0 ) ) );
    public final void rule__Field__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1981:1: ( ( ( rule__Field__Group_0__0 ) ) | ( ( rule__Field__Group_1__0 ) ) )
            int alt37=2;
            int LA37_0 = input.LA(1);

            if ( ((LA37_0>=RULE_ID && LA37_0<=RULE_S)) ) {
                alt37=1;
            }
            else if ( (LA37_0==55) ) {
                alt37=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 37, 0, input);

                throw nvae;
            }
            switch (alt37) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1982:1: ( ( rule__Field__Group_0__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1982:1: ( ( rule__Field__Group_0__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1983:1: ( rule__Field__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFieldAccess().getGroup_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1984:1: ( rule__Field__Group_0__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1984:2: rule__Field__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Field__Group_0__0_in_rule__Field__Alternatives4341);
                    rule__Field__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFieldAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1988:6: ( ( rule__Field__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1988:6: ( ( rule__Field__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1989:1: ( rule__Field__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFieldAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1990:1: ( rule__Field__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1990:2: rule__Field__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Field__Group_1__0_in_rule__Field__Alternatives4359);
                    rule__Field__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFieldAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Alternatives"


    // $ANTLR start "rule__Field__NameAlternatives_0_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1999:1: rule__Field__NameAlternatives_0_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__Field__NameAlternatives_0_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2003:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt38=2;
            int LA38_0 = input.LA(1);

            if ( (LA38_0==RULE_ID) ) {
                alt38=1;
            }
            else if ( (LA38_0==RULE_S) ) {
                alt38=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 38, 0, input);

                throw nvae;
            }
            switch (alt38) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2004:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2004:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2005:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFieldAccess().getNameIDTerminalRuleCall_0_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Field__NameAlternatives_0_0_04392); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFieldAccess().getNameIDTerminalRuleCall_0_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2010:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2010:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2011:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFieldAccess().getNameSTerminalRuleCall_0_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__Field__NameAlternatives_0_0_04409); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFieldAccess().getNameSTerminalRuleCall_0_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__NameAlternatives_0_0_0"


    // $ANTLR start "rule__Field__NameAlternatives_1_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2021:1: rule__Field__NameAlternatives_1_1_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__Field__NameAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2025:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt39=2;
            int LA39_0 = input.LA(1);

            if ( (LA39_0==RULE_ID) ) {
                alt39=1;
            }
            else if ( (LA39_0==RULE_S) ) {
                alt39=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 39, 0, input);

                throw nvae;
            }
            switch (alt39) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2026:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2026:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2027:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFieldAccess().getNameIDTerminalRuleCall_1_1_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Field__NameAlternatives_1_1_04441); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFieldAccess().getNameIDTerminalRuleCall_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2032:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2032:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2033:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFieldAccess().getNameSTerminalRuleCall_1_1_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__Field__NameAlternatives_1_1_04458); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFieldAccess().getNameSTerminalRuleCall_1_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__NameAlternatives_1_1_0"


    // $ANTLR start "rule__ValueDecl__Alternatives_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2043:1: rule__ValueDecl__Alternatives_1 : ( ( ( rule__ValueDecl__NameAssignment_1_0 ) ) | ( ( rule__ValueDecl__NameAssignment_1_1 ) ) );
    public final void rule__ValueDecl__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2047:1: ( ( ( rule__ValueDecl__NameAssignment_1_0 ) ) | ( ( rule__ValueDecl__NameAssignment_1_1 ) ) )
            int alt40=2;
            int LA40_0 = input.LA(1);

            if ( ((LA40_0>=RULE_ID && LA40_0<=RULE_S)) ) {
                alt40=1;
            }
            else if ( ((LA40_0>=RULE_USCORE && LA40_0<=RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER)) ) {
                alt40=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 40, 0, input);

                throw nvae;
            }
            switch (alt40) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2048:1: ( ( rule__ValueDecl__NameAssignment_1_0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2048:1: ( ( rule__ValueDecl__NameAssignment_1_0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2049:1: ( rule__ValueDecl__NameAssignment_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValueDeclAccess().getNameAssignment_1_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2050:1: ( rule__ValueDecl__NameAssignment_1_0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2050:2: rule__ValueDecl__NameAssignment_1_0
                    {
                    pushFollow(FOLLOW_rule__ValueDecl__NameAssignment_1_0_in_rule__ValueDecl__Alternatives_14490);
                    rule__ValueDecl__NameAssignment_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getValueDeclAccess().getNameAssignment_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2054:6: ( ( rule__ValueDecl__NameAssignment_1_1 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2054:6: ( ( rule__ValueDecl__NameAssignment_1_1 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2055:1: ( rule__ValueDecl__NameAssignment_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValueDeclAccess().getNameAssignment_1_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2056:1: ( rule__ValueDecl__NameAssignment_1_1 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2056:2: rule__ValueDecl__NameAssignment_1_1
                    {
                    pushFollow(FOLLOW_rule__ValueDecl__NameAssignment_1_1_in_rule__ValueDecl__Alternatives_14508);
                    rule__ValueDecl__NameAssignment_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getValueDeclAccess().getNameAssignment_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Alternatives_1"


    // $ANTLR start "rule__ValueDecl__NameAlternatives_1_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2065:1: rule__ValueDecl__NameAlternatives_1_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__ValueDecl__NameAlternatives_1_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2069:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( (LA41_0==RULE_ID) ) {
                alt41=1;
            }
            else if ( (LA41_0==RULE_S) ) {
                alt41=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 41, 0, input);

                throw nvae;
            }
            switch (alt41) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2070:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2070:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2071:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValueDeclAccess().getNameIDTerminalRuleCall_1_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ValueDecl__NameAlternatives_1_0_04541); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getValueDeclAccess().getNameIDTerminalRuleCall_1_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2076:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2076:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2077:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValueDeclAccess().getNameSTerminalRuleCall_1_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__ValueDecl__NameAlternatives_1_0_04558); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getValueDeclAccess().getNameSTerminalRuleCall_1_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__NameAlternatives_1_0_0"


    // $ANTLR start "rule__ValueDecl__IdsAlternatives_2_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2087:1: rule__ValueDecl__IdsAlternatives_2_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__ValueDecl__IdsAlternatives_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2091:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt42=2;
            int LA42_0 = input.LA(1);

            if ( (LA42_0==RULE_ID) ) {
                alt42=1;
            }
            else if ( (LA42_0==RULE_S) ) {
                alt42=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 42, 0, input);

                throw nvae;
            }
            switch (alt42) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2092:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2092:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2093:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValueDeclAccess().getIdsIDTerminalRuleCall_2_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ValueDecl__IdsAlternatives_2_04590); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getValueDeclAccess().getIdsIDTerminalRuleCall_2_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2098:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2098:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2099:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValueDeclAccess().getIdsSTerminalRuleCall_2_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__ValueDecl__IdsAlternatives_2_04607); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getValueDeclAccess().getIdsSTerminalRuleCall_2_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__IdsAlternatives_2_0"


    // $ANTLR start "rule__PAT__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2109:1: rule__PAT__Alternatives : ( ( ( rule__PAT__UscoreAssignment_0 ) ) | ( ( rule__PAT__Group_1__0 ) ) | ( ( rule__PAT__Group_2__0 ) ) | ( ( rule__PAT__Group_3__0 ) ) );
    public final void rule__PAT__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2113:1: ( ( ( rule__PAT__UscoreAssignment_0 ) ) | ( ( rule__PAT__Group_1__0 ) ) | ( ( rule__PAT__Group_2__0 ) ) | ( ( rule__PAT__Group_3__0 ) ) )
            int alt43=4;
            switch ( input.LA(1) ) {
            case RULE_USCORE:
                {
                alt43=1;
                }
                break;
            case RULE_HEXINT:
            case RULE_NEGINT:
            case RULE_POSINT_WO_DUALS:
            case RULE_DUALS:
                {
                alt43=2;
                }
                break;
            case RULE_ID:
            case RULE_S:
                {
                alt43=3;
                }
                break;
            case 58:
                {
                alt43=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 43, 0, input);

                throw nvae;
            }

            switch (alt43) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2114:1: ( ( rule__PAT__UscoreAssignment_0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2114:1: ( ( rule__PAT__UscoreAssignment_0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2115:1: ( rule__PAT__UscoreAssignment_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPATAccess().getUscoreAssignment_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2116:1: ( rule__PAT__UscoreAssignment_0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2116:2: rule__PAT__UscoreAssignment_0
                    {
                    pushFollow(FOLLOW_rule__PAT__UscoreAssignment_0_in_rule__PAT__Alternatives4639);
                    rule__PAT__UscoreAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPATAccess().getUscoreAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2120:6: ( ( rule__PAT__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2120:6: ( ( rule__PAT__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2121:1: ( rule__PAT__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPATAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2122:1: ( rule__PAT__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2122:2: rule__PAT__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__PAT__Group_1__0_in_rule__PAT__Alternatives4657);
                    rule__PAT__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPATAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2126:6: ( ( rule__PAT__Group_2__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2126:6: ( ( rule__PAT__Group_2__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2127:1: ( rule__PAT__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPATAccess().getGroup_2()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2128:1: ( rule__PAT__Group_2__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2128:2: rule__PAT__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__PAT__Group_2__0_in_rule__PAT__Alternatives4675);
                    rule__PAT__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPATAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2132:6: ( ( rule__PAT__Group_3__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2132:6: ( ( rule__PAT__Group_3__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2133:1: ( rule__PAT__Group_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPATAccess().getGroup_3()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2134:1: ( rule__PAT__Group_3__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2134:2: rule__PAT__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__PAT__Group_3__0_in_rule__PAT__Alternatives4693);
                    rule__PAT__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPATAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Alternatives"


    // $ANTLR start "rule__PAT__IdAlternatives_2_0_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2143:1: rule__PAT__IdAlternatives_2_0_0_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__PAT__IdAlternatives_2_0_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2147:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt44=2;
            int LA44_0 = input.LA(1);

            if ( (LA44_0==RULE_ID) ) {
                alt44=1;
            }
            else if ( (LA44_0==RULE_S) ) {
                alt44=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 44, 0, input);

                throw nvae;
            }
            switch (alt44) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2148:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2148:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2149:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPATAccess().getIdIDTerminalRuleCall_2_0_0_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PAT__IdAlternatives_2_0_0_04726); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPATAccess().getIdIDTerminalRuleCall_2_0_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2154:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2154:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2155:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPATAccess().getIdSTerminalRuleCall_2_0_0_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__PAT__IdAlternatives_2_0_0_04743); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPATAccess().getIdSTerminalRuleCall_2_0_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__IdAlternatives_2_0_0_0"


    // $ANTLR start "rule__CONS__ConNameAlternatives_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2165:1: rule__CONS__ConNameAlternatives_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__CONS__ConNameAlternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2169:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( (LA45_0==RULE_ID) ) {
                alt45=1;
            }
            else if ( (LA45_0==RULE_S) ) {
                alt45=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 45, 0, input);

                throw nvae;
            }
            switch (alt45) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2170:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2170:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2171:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCONSAccess().getConNameIDTerminalRuleCall_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CONS__ConNameAlternatives_04775); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCONSAccess().getConNameIDTerminalRuleCall_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2176:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2176:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2177:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCONSAccess().getConNameSTerminalRuleCall_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__CONS__ConNameAlternatives_04792); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCONSAccess().getConNameSTerminalRuleCall_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CONS__ConNameAlternatives_0"


    // $ANTLR start "rule__DECODEPAT__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2187:1: rule__DECODEPAT__Alternatives : ( ( ( rule__DECODEPAT__Group_0__0 ) ) | ( ruleTOKPAT ) );
    public final void rule__DECODEPAT__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2191:1: ( ( ( rule__DECODEPAT__Group_0__0 ) ) | ( ruleTOKPAT ) )
            int alt46=2;
            int LA46_0 = input.LA(1);

            if ( (LA46_0==58) ) {
                alt46=1;
            }
            else if ( ((LA46_0>=RULE_ID && LA46_0<=RULE_S)||LA46_0==RULE_HEXINT) ) {
                alt46=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 46, 0, input);

                throw nvae;
            }
            switch (alt46) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2192:1: ( ( rule__DECODEPAT__Group_0__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2192:1: ( ( rule__DECODEPAT__Group_0__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2193:1: ( rule__DECODEPAT__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDECODEPATAccess().getGroup_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2194:1: ( rule__DECODEPAT__Group_0__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2194:2: rule__DECODEPAT__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__DECODEPAT__Group_0__0_in_rule__DECODEPAT__Alternatives4824);
                    rule__DECODEPAT__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDECODEPATAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2198:6: ( ruleTOKPAT )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2198:6: ( ruleTOKPAT )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2199:1: ruleTOKPAT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDECODEPATAccess().getTOKPATParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleTOKPAT_in_rule__DECODEPAT__Alternatives4842);
                    ruleTOKPAT();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDECODEPATAccess().getTOKPATParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DECODEPAT__Alternatives"


    // $ANTLR start "rule__TOKPAT__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2209:1: rule__TOKPAT__Alternatives : ( ( RULE_HEXINT ) | ( ( rule__TOKPAT__Alternatives_1 ) ) );
    public final void rule__TOKPAT__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2213:1: ( ( RULE_HEXINT ) | ( ( rule__TOKPAT__Alternatives_1 ) ) )
            int alt47=2;
            int LA47_0 = input.LA(1);

            if ( (LA47_0==RULE_HEXINT) ) {
                alt47=1;
            }
            else if ( ((LA47_0>=RULE_ID && LA47_0<=RULE_S)) ) {
                alt47=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 47, 0, input);

                throw nvae;
            }
            switch (alt47) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2214:1: ( RULE_HEXINT )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2214:1: ( RULE_HEXINT )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2215:1: RULE_HEXINT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTOKPATAccess().getHEXINTTerminalRuleCall_0()); 
                    }
                    match(input,RULE_HEXINT,FOLLOW_RULE_HEXINT_in_rule__TOKPAT__Alternatives4874); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTOKPATAccess().getHEXINTTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2220:6: ( ( rule__TOKPAT__Alternatives_1 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2220:6: ( ( rule__TOKPAT__Alternatives_1 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2221:1: ( rule__TOKPAT__Alternatives_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTOKPATAccess().getAlternatives_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2222:1: ( rule__TOKPAT__Alternatives_1 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2222:2: rule__TOKPAT__Alternatives_1
                    {
                    pushFollow(FOLLOW_rule__TOKPAT__Alternatives_1_in_rule__TOKPAT__Alternatives4891);
                    rule__TOKPAT__Alternatives_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTOKPATAccess().getAlternatives_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TOKPAT__Alternatives"


    // $ANTLR start "rule__TOKPAT__Alternatives_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2231:1: rule__TOKPAT__Alternatives_1 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__TOKPAT__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2235:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt48=2;
            int LA48_0 = input.LA(1);

            if ( (LA48_0==RULE_ID) ) {
                alt48=1;
            }
            else if ( (LA48_0==RULE_S) ) {
                alt48=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 48, 0, input);

                throw nvae;
            }
            switch (alt48) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2236:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2236:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2237:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTOKPATAccess().getIDTerminalRuleCall_1_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TOKPAT__Alternatives_14924); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTOKPATAccess().getIDTerminalRuleCall_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2242:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2242:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2243:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTOKPATAccess().getSTerminalRuleCall_1_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__TOKPAT__Alternatives_14941); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTOKPATAccess().getSTerminalRuleCall_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TOKPAT__Alternatives_1"


    // $ANTLR start "rule__BITPAT__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2253:1: rule__BITPAT__Alternatives : ( ( ruleBINARY ) | ( ( rule__BITPAT__Group_1__0 ) ) );
    public final void rule__BITPAT__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2257:1: ( ( ruleBINARY ) | ( ( rule__BITPAT__Group_1__0 ) ) )
            int alt49=2;
            int LA49_0 = input.LA(1);

            if ( (LA49_0==RULE_BINS||(LA49_0>=RULE_BS && LA49_0<=RULE_DOT)||LA49_0==RULE_DUALS) ) {
                alt49=1;
            }
            else if ( ((LA49_0>=RULE_ID && LA49_0<=RULE_S)) ) {
                alt49=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 49, 0, input);

                throw nvae;
            }
            switch (alt49) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2258:1: ( ruleBINARY )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2258:1: ( ruleBINARY )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2259:1: ruleBINARY
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBITPATAccess().getBINARYParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleBINARY_in_rule__BITPAT__Alternatives4973);
                    ruleBINARY();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBITPATAccess().getBINARYParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2264:6: ( ( rule__BITPAT__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2264:6: ( ( rule__BITPAT__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2265:1: ( rule__BITPAT__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBITPATAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2266:1: ( rule__BITPAT__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2266:2: rule__BITPAT__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__BITPAT__Group_1__0_in_rule__BITPAT__Alternatives4990);
                    rule__BITPAT__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBITPATAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPAT__Alternatives"


    // $ANTLR start "rule__BITPAT__Alternatives_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2275:1: rule__BITPAT__Alternatives_1_0 : ( ( RULE_ID ) | ( RULE_S ) );
    public final void rule__BITPAT__Alternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2279:1: ( ( RULE_ID ) | ( RULE_S ) )
            int alt50=2;
            int LA50_0 = input.LA(1);

            if ( (LA50_0==RULE_ID) ) {
                alt50=1;
            }
            else if ( (LA50_0==RULE_S) ) {
                alt50=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 50, 0, input);

                throw nvae;
            }
            switch (alt50) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2280:1: ( RULE_ID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2280:1: ( RULE_ID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2281:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBITPATAccess().getIDTerminalRuleCall_1_0_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__BITPAT__Alternatives_1_05023); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBITPATAccess().getIDTerminalRuleCall_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2286:6: ( RULE_S )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2286:6: ( RULE_S )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2287:1: RULE_S
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBITPATAccess().getSTerminalRuleCall_1_0_1()); 
                    }
                    match(input,RULE_S,FOLLOW_RULE_S_in_rule__BITPAT__Alternatives_1_05040); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBITPATAccess().getSTerminalRuleCall_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPAT__Alternatives_1_0"


    // $ANTLR start "rule__BITPATORINT__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2297:1: rule__BITPATORINT__Alternatives : ( ( ( rule__BITPATORINT__Group_0__0 ) ) | ( ( rule__BITPATORINT__Group_1__0 ) ) );
    public final void rule__BITPATORINT__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2301:1: ( ( ( rule__BITPATORINT__Group_0__0 ) ) | ( ( rule__BITPATORINT__Group_1__0 ) ) )
            int alt51=2;
            int LA51_0 = input.LA(1);

            if ( (LA51_0==35) ) {
                alt51=1;
            }
            else if ( (LA51_0==59) ) {
                alt51=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 51, 0, input);

                throw nvae;
            }
            switch (alt51) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2302:1: ( ( rule__BITPATORINT__Group_0__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2302:1: ( ( rule__BITPATORINT__Group_0__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2303:1: ( rule__BITPATORINT__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBITPATORINTAccess().getGroup_0()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2304:1: ( rule__BITPATORINT__Group_0__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2304:2: rule__BITPATORINT__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__BITPATORINT__Group_0__0_in_rule__BITPATORINT__Alternatives5072);
                    rule__BITPATORINT__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBITPATORINTAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2308:6: ( ( rule__BITPATORINT__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2308:6: ( ( rule__BITPATORINT__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2309:1: ( rule__BITPATORINT__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBITPATORINTAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2310:1: ( rule__BITPATORINT__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2310:2: rule__BITPATORINT__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__BITPATORINT__Group_1__0_in_rule__BITPATORINT__Alternatives5090);
                    rule__BITPATORINT__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBITPATORINTAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPATORINT__Alternatives"


    // $ANTLR start "rule__LIT__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2319:1: rule__LIT__Alternatives : ( ( ruleINTEGER ) | ( ( rule__LIT__Group_1__0 ) ) );
    public final void rule__LIT__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2323:1: ( ( ruleINTEGER ) | ( ( rule__LIT__Group_1__0 ) ) )
            int alt52=2;
            int LA52_0 = input.LA(1);

            if ( (LA52_0==RULE_HEXINT||(LA52_0>=RULE_NEGINT && LA52_0<=RULE_DUALS)) ) {
                alt52=1;
            }
            else if ( (LA52_0==58) ) {
                alt52=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 52, 0, input);

                throw nvae;
            }
            switch (alt52) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2324:1: ( ruleINTEGER )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2324:1: ( ruleINTEGER )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2325:1: ruleINTEGER
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getLITAccess().getINTEGERParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleINTEGER_in_rule__LIT__Alternatives5123);
                    ruleINTEGER();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getLITAccess().getINTEGERParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2330:6: ( ( rule__LIT__Group_1__0 ) )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2330:6: ( ( rule__LIT__Group_1__0 ) )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2331:1: ( rule__LIT__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getLITAccess().getGroup_1()); 
                    }
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2332:1: ( rule__LIT__Group_1__0 )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2332:2: rule__LIT__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__LIT__Group_1__0_in_rule__LIT__Alternatives5140);
                    rule__LIT__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getLITAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LIT__Alternatives"


    // $ANTLR start "rule__MID__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2341:1: rule__MID__Alternatives : ( ( RULE_MIXID ) | ( RULE_USCORE ) );
    public final void rule__MID__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2345:1: ( ( RULE_MIXID ) | ( RULE_USCORE ) )
            int alt53=2;
            int LA53_0 = input.LA(1);

            if ( (LA53_0==RULE_MIXID) ) {
                alt53=1;
            }
            else if ( (LA53_0==RULE_USCORE) ) {
                alt53=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 53, 0, input);

                throw nvae;
            }
            switch (alt53) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2346:1: ( RULE_MIXID )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2346:1: ( RULE_MIXID )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2347:1: RULE_MIXID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMIDAccess().getMIXIDTerminalRuleCall_0()); 
                    }
                    match(input,RULE_MIXID,FOLLOW_RULE_MIXID_in_rule__MID__Alternatives5173); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMIDAccess().getMIXIDTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2352:6: ( RULE_USCORE )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2352:6: ( RULE_USCORE )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2353:1: RULE_USCORE
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMIDAccess().getUSCORETerminalRuleCall_1()); 
                    }
                    match(input,RULE_USCORE,FOLLOW_RULE_USCORE_in_rule__MID__Alternatives5190); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMIDAccess().getUSCORETerminalRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MID__Alternatives"


    // $ANTLR start "rule__SYM__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2363:1: rule__SYM__Alternatives : ( ( RULE_USCORE ) | ( RULE_BS ) | ( RULE_DOT ) | ( RULE_LESS ) | ( RULE_GREATER ) | ( RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER ) );
    public final void rule__SYM__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2367:1: ( ( RULE_USCORE ) | ( RULE_BS ) | ( RULE_DOT ) | ( RULE_LESS ) | ( RULE_GREATER ) | ( RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER ) )
            int alt54=6;
            switch ( input.LA(1) ) {
            case RULE_USCORE:
                {
                alt54=1;
                }
                break;
            case RULE_BS:
                {
                alt54=2;
                }
                break;
            case RULE_DOT:
                {
                alt54=3;
                }
                break;
            case RULE_LESS:
                {
                alt54=4;
                }
                break;
            case RULE_GREATER:
                {
                alt54=5;
                }
                break;
            case RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER:
                {
                alt54=6;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 54, 0, input);

                throw nvae;
            }

            switch (alt54) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2368:1: ( RULE_USCORE )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2368:1: ( RULE_USCORE )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2369:1: RULE_USCORE
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSYMAccess().getUSCORETerminalRuleCall_0()); 
                    }
                    match(input,RULE_USCORE,FOLLOW_RULE_USCORE_in_rule__SYM__Alternatives5222); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSYMAccess().getUSCORETerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2374:6: ( RULE_BS )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2374:6: ( RULE_BS )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2375:1: RULE_BS
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSYMAccess().getBSTerminalRuleCall_1()); 
                    }
                    match(input,RULE_BS,FOLLOW_RULE_BS_in_rule__SYM__Alternatives5239); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSYMAccess().getBSTerminalRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2380:6: ( RULE_DOT )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2380:6: ( RULE_DOT )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2381:1: RULE_DOT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSYMAccess().getDOTTerminalRuleCall_2()); 
                    }
                    match(input,RULE_DOT,FOLLOW_RULE_DOT_in_rule__SYM__Alternatives5256); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSYMAccess().getDOTTerminalRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2386:6: ( RULE_LESS )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2386:6: ( RULE_LESS )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2387:1: RULE_LESS
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSYMAccess().getLESSTerminalRuleCall_3()); 
                    }
                    match(input,RULE_LESS,FOLLOW_RULE_LESS_in_rule__SYM__Alternatives5273); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSYMAccess().getLESSTerminalRuleCall_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2392:6: ( RULE_GREATER )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2392:6: ( RULE_GREATER )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2393:1: RULE_GREATER
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSYMAccess().getGREATERTerminalRuleCall_4()); 
                    }
                    match(input,RULE_GREATER,FOLLOW_RULE_GREATER_in_rule__SYM__Alternatives5290); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSYMAccess().getGREATERTerminalRuleCall_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2398:6: ( RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2398:6: ( RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2399:1: RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSYMAccess().getSYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATERTerminalRuleCall_5()); 
                    }
                    match(input,RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER,FOLLOW_RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER_in_rule__SYM__Alternatives5307); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSYMAccess().getSYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATERTerminalRuleCall_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SYM__Alternatives"


    // $ANTLR start "rule__INTEGER__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2409:1: rule__INTEGER__Alternatives : ( ( rulePOSINT ) | ( RULE_HEXINT ) | ( RULE_NEGINT ) );
    public final void rule__INTEGER__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2413:1: ( ( rulePOSINT ) | ( RULE_HEXINT ) | ( RULE_NEGINT ) )
            int alt55=3;
            switch ( input.LA(1) ) {
            case RULE_POSINT_WO_DUALS:
            case RULE_DUALS:
                {
                alt55=1;
                }
                break;
            case RULE_HEXINT:
                {
                alt55=2;
                }
                break;
            case RULE_NEGINT:
                {
                alt55=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 55, 0, input);

                throw nvae;
            }

            switch (alt55) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2414:1: ( rulePOSINT )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2414:1: ( rulePOSINT )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2415:1: rulePOSINT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getINTEGERAccess().getPOSINTParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_rulePOSINT_in_rule__INTEGER__Alternatives5339);
                    rulePOSINT();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getINTEGERAccess().getPOSINTParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2420:6: ( RULE_HEXINT )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2420:6: ( RULE_HEXINT )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2421:1: RULE_HEXINT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getINTEGERAccess().getHEXINTTerminalRuleCall_1()); 
                    }
                    match(input,RULE_HEXINT,FOLLOW_RULE_HEXINT_in_rule__INTEGER__Alternatives5356); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getINTEGERAccess().getHEXINTTerminalRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2426:6: ( RULE_NEGINT )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2426:6: ( RULE_NEGINT )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2427:1: RULE_NEGINT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getINTEGERAccess().getNEGINTTerminalRuleCall_2()); 
                    }
                    match(input,RULE_NEGINT,FOLLOW_RULE_NEGINT_in_rule__INTEGER__Alternatives5373); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getINTEGERAccess().getNEGINTTerminalRuleCall_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__INTEGER__Alternatives"


    // $ANTLR start "rule__POSINT__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2437:1: rule__POSINT__Alternatives : ( ( RULE_POSINT_WO_DUALS ) | ( RULE_DUALS ) );
    public final void rule__POSINT__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2441:1: ( ( RULE_POSINT_WO_DUALS ) | ( RULE_DUALS ) )
            int alt56=2;
            int LA56_0 = input.LA(1);

            if ( (LA56_0==RULE_POSINT_WO_DUALS) ) {
                alt56=1;
            }
            else if ( (LA56_0==RULE_DUALS) ) {
                alt56=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 56, 0, input);

                throw nvae;
            }
            switch (alt56) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2442:1: ( RULE_POSINT_WO_DUALS )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2442:1: ( RULE_POSINT_WO_DUALS )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2443:1: RULE_POSINT_WO_DUALS
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPOSINTAccess().getPOSINT_WO_DUALSTerminalRuleCall_0()); 
                    }
                    match(input,RULE_POSINT_WO_DUALS,FOLLOW_RULE_POSINT_WO_DUALS_in_rule__POSINT__Alternatives5405); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPOSINTAccess().getPOSINT_WO_DUALSTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2448:6: ( RULE_DUALS )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2448:6: ( RULE_DUALS )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2449:1: RULE_DUALS
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPOSINTAccess().getDUALSTerminalRuleCall_1()); 
                    }
                    match(input,RULE_DUALS,FOLLOW_RULE_DUALS_in_rule__POSINT__Alternatives5422); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPOSINTAccess().getDUALSTerminalRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__POSINT__Alternatives"


    // $ANTLR start "rule__BINARY__Alternatives"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2459:1: rule__BINARY__Alternatives : ( ( RULE_DUALS ) | ( RULE_BINS ) | ( RULE_BS ) | ( RULE_DOT ) );
    public final void rule__BINARY__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2463:1: ( ( RULE_DUALS ) | ( RULE_BINS ) | ( RULE_BS ) | ( RULE_DOT ) )
            int alt57=4;
            switch ( input.LA(1) ) {
            case RULE_DUALS:
                {
                alt57=1;
                }
                break;
            case RULE_BINS:
                {
                alt57=2;
                }
                break;
            case RULE_BS:
                {
                alt57=3;
                }
                break;
            case RULE_DOT:
                {
                alt57=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 57, 0, input);

                throw nvae;
            }

            switch (alt57) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2464:1: ( RULE_DUALS )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2464:1: ( RULE_DUALS )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2465:1: RULE_DUALS
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBINARYAccess().getDUALSTerminalRuleCall_0()); 
                    }
                    match(input,RULE_DUALS,FOLLOW_RULE_DUALS_in_rule__BINARY__Alternatives5454); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBINARYAccess().getDUALSTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2470:6: ( RULE_BINS )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2470:6: ( RULE_BINS )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2471:1: RULE_BINS
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBINARYAccess().getBINSTerminalRuleCall_1()); 
                    }
                    match(input,RULE_BINS,FOLLOW_RULE_BINS_in_rule__BINARY__Alternatives5471); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBINARYAccess().getBINSTerminalRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2476:6: ( RULE_BS )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2476:6: ( RULE_BS )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2477:1: RULE_BS
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBINARYAccess().getBSTerminalRuleCall_2()); 
                    }
                    match(input,RULE_BS,FOLLOW_RULE_BS_in_rule__BINARY__Alternatives5488); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBINARYAccess().getBSTerminalRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2482:6: ( RULE_DOT )
                    {
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2482:6: ( RULE_DOT )
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2483:1: RULE_DOT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBINARYAccess().getDOTTerminalRuleCall_3()); 
                    }
                    match(input,RULE_DOT,FOLLOW_RULE_DOT_in_rule__BINARY__Alternatives5505); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBINARYAccess().getDOTTerminalRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BINARY__Alternatives"


    // $ANTLR start "rule__Model__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2495:1: rule__Model__Group__0 : rule__Model__Group__0__Impl rule__Model__Group__1 ;
    public final void rule__Model__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2499:1: ( rule__Model__Group__0__Impl rule__Model__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2500:2: rule__Model__Group__0__Impl rule__Model__Group__1
            {
            pushFollow(FOLLOW_rule__Model__Group__0__Impl_in_rule__Model__Group__05535);
            rule__Model__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Model__Group__1_in_rule__Model__Group__05538);
            rule__Model__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__0"


    // $ANTLR start "rule__Model__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2507:1: rule__Model__Group__0__Impl : ( ( rule__Model__DeclAssignment_0 ) ) ;
    public final void rule__Model__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2511:1: ( ( ( rule__Model__DeclAssignment_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2512:1: ( ( rule__Model__DeclAssignment_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2512:1: ( ( rule__Model__DeclAssignment_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2513:1: ( rule__Model__DeclAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModelAccess().getDeclAssignment_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2514:1: ( rule__Model__DeclAssignment_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2514:2: rule__Model__DeclAssignment_0
            {
            pushFollow(FOLLOW_rule__Model__DeclAssignment_0_in_rule__Model__Group__0__Impl5565);
            rule__Model__DeclAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModelAccess().getDeclAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__0__Impl"


    // $ANTLR start "rule__Model__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2524:1: rule__Model__Group__1 : rule__Model__Group__1__Impl ;
    public final void rule__Model__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2528:1: ( rule__Model__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2529:2: rule__Model__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Model__Group__1__Impl_in_rule__Model__Group__15595);
            rule__Model__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__1"


    // $ANTLR start "rule__Model__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2535:1: rule__Model__Group__1__Impl : ( ( rule__Model__Group_1__0 )* ) ;
    public final void rule__Model__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2539:1: ( ( ( rule__Model__Group_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2540:1: ( ( rule__Model__Group_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2540:1: ( ( rule__Model__Group_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2541:1: ( rule__Model__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModelAccess().getGroup_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2542:1: ( rule__Model__Group_1__0 )*
            loop58:
            do {
                int alt58=2;
                int LA58_0 = input.LA(1);

                if ( ((LA58_0>=33 && LA58_0<=34)||LA58_0==36||LA58_0==39) ) {
                    alt58=1;
                }


                switch (alt58) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2542:2: rule__Model__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__Model__Group_1__0_in_rule__Model__Group__1__Impl5622);
            	    rule__Model__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop58;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModelAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__1__Impl"


    // $ANTLR start "rule__Model__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2556:1: rule__Model__Group_1__0 : rule__Model__Group_1__0__Impl rule__Model__Group_1__1 ;
    public final void rule__Model__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2560:1: ( rule__Model__Group_1__0__Impl rule__Model__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2561:2: rule__Model__Group_1__0__Impl rule__Model__Group_1__1
            {
            pushFollow(FOLLOW_rule__Model__Group_1__0__Impl_in_rule__Model__Group_1__05657);
            rule__Model__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Model__Group_1__1_in_rule__Model__Group_1__05660);
            rule__Model__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group_1__0"


    // $ANTLR start "rule__Model__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2568:1: rule__Model__Group_1__0__Impl : ( ( ';' )? ) ;
    public final void rule__Model__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2572:1: ( ( ( ';' )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2573:1: ( ( ';' )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2573:1: ( ( ';' )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2574:1: ( ';' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModelAccess().getSemicolonKeyword_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2575:1: ( ';' )?
            int alt59=2;
            int LA59_0 = input.LA(1);

            if ( (LA59_0==33) ) {
                alt59=1;
            }
            switch (alt59) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2576:2: ';'
                    {
                    match(input,33,FOLLOW_33_in_rule__Model__Group_1__0__Impl5689); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModelAccess().getSemicolonKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group_1__0__Impl"


    // $ANTLR start "rule__Model__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2587:1: rule__Model__Group_1__1 : rule__Model__Group_1__1__Impl ;
    public final void rule__Model__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2591:1: ( rule__Model__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2592:2: rule__Model__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Model__Group_1__1__Impl_in_rule__Model__Group_1__15722);
            rule__Model__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group_1__1"


    // $ANTLR start "rule__Model__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2598:1: rule__Model__Group_1__1__Impl : ( ( rule__Model__DeclAssignment_1_1 ) ) ;
    public final void rule__Model__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2602:1: ( ( ( rule__Model__DeclAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2603:1: ( ( rule__Model__DeclAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2603:1: ( ( rule__Model__DeclAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2604:1: ( rule__Model__DeclAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModelAccess().getDeclAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2605:1: ( rule__Model__DeclAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2605:2: rule__Model__DeclAssignment_1_1
            {
            pushFollow(FOLLOW_rule__Model__DeclAssignment_1_1_in_rule__Model__Group_1__1__Impl5749);
            rule__Model__DeclAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModelAccess().getDeclAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group_1__1__Impl"


    // $ANTLR start "rule__DeclExport__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2619:1: rule__DeclExport__Group__0 : rule__DeclExport__Group__0__Impl rule__DeclExport__Group__1 ;
    public final void rule__DeclExport__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2623:1: ( rule__DeclExport__Group__0__Impl rule__DeclExport__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2624:2: rule__DeclExport__Group__0__Impl rule__DeclExport__Group__1
            {
            pushFollow(FOLLOW_rule__DeclExport__Group__0__Impl_in_rule__DeclExport__Group__05783);
            rule__DeclExport__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclExport__Group__1_in_rule__DeclExport__Group__05786);
            rule__DeclExport__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__0"


    // $ANTLR start "rule__DeclExport__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2631:1: rule__DeclExport__Group__0__Impl : ( 'export' ) ;
    public final void rule__DeclExport__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2635:1: ( ( 'export' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2636:1: ( 'export' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2636:1: ( 'export' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2637:1: 'export'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getExportKeyword_0()); 
            }
            match(input,34,FOLLOW_34_in_rule__DeclExport__Group__0__Impl5814); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getExportKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__0__Impl"


    // $ANTLR start "rule__DeclExport__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2650:1: rule__DeclExport__Group__1 : rule__DeclExport__Group__1__Impl rule__DeclExport__Group__2 ;
    public final void rule__DeclExport__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2654:1: ( rule__DeclExport__Group__1__Impl rule__DeclExport__Group__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2655:2: rule__DeclExport__Group__1__Impl rule__DeclExport__Group__2
            {
            pushFollow(FOLLOW_rule__DeclExport__Group__1__Impl_in_rule__DeclExport__Group__15845);
            rule__DeclExport__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclExport__Group__2_in_rule__DeclExport__Group__15848);
            rule__DeclExport__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__1"


    // $ANTLR start "rule__DeclExport__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2662:1: rule__DeclExport__Group__1__Impl : ( ( rule__DeclExport__NameAssignment_1 ) ) ;
    public final void rule__DeclExport__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2666:1: ( ( ( rule__DeclExport__NameAssignment_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2667:1: ( ( rule__DeclExport__NameAssignment_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2667:1: ( ( rule__DeclExport__NameAssignment_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2668:1: ( rule__DeclExport__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getNameAssignment_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2669:1: ( rule__DeclExport__NameAssignment_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2669:2: rule__DeclExport__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__DeclExport__NameAssignment_1_in_rule__DeclExport__Group__1__Impl5875);
            rule__DeclExport__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__1__Impl"


    // $ANTLR start "rule__DeclExport__Group__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2679:1: rule__DeclExport__Group__2 : rule__DeclExport__Group__2__Impl rule__DeclExport__Group__3 ;
    public final void rule__DeclExport__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2683:1: ( rule__DeclExport__Group__2__Impl rule__DeclExport__Group__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2684:2: rule__DeclExport__Group__2__Impl rule__DeclExport__Group__3
            {
            pushFollow(FOLLOW_rule__DeclExport__Group__2__Impl_in_rule__DeclExport__Group__25905);
            rule__DeclExport__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclExport__Group__3_in_rule__DeclExport__Group__25908);
            rule__DeclExport__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__2"


    // $ANTLR start "rule__DeclExport__Group__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2691:1: rule__DeclExport__Group__2__Impl : ( ( rule__DeclExport__TyVarsAssignment_2 )? ) ;
    public final void rule__DeclExport__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2695:1: ( ( ( rule__DeclExport__TyVarsAssignment_2 )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2696:1: ( ( rule__DeclExport__TyVarsAssignment_2 )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2696:1: ( ( rule__DeclExport__TyVarsAssignment_2 )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2697:1: ( rule__DeclExport__TyVarsAssignment_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getTyVarsAssignment_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2698:1: ( rule__DeclExport__TyVarsAssignment_2 )?
            int alt60=2;
            int LA60_0 = input.LA(1);

            if ( (LA60_0==40) ) {
                alt60=1;
            }
            switch (alt60) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2698:2: rule__DeclExport__TyVarsAssignment_2
                    {
                    pushFollow(FOLLOW_rule__DeclExport__TyVarsAssignment_2_in_rule__DeclExport__Group__2__Impl5935);
                    rule__DeclExport__TyVarsAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getTyVarsAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__2__Impl"


    // $ANTLR start "rule__DeclExport__Group__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2708:1: rule__DeclExport__Group__3 : rule__DeclExport__Group__3__Impl rule__DeclExport__Group__4 ;
    public final void rule__DeclExport__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2712:1: ( rule__DeclExport__Group__3__Impl rule__DeclExport__Group__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2713:2: rule__DeclExport__Group__3__Impl rule__DeclExport__Group__4
            {
            pushFollow(FOLLOW_rule__DeclExport__Group__3__Impl_in_rule__DeclExport__Group__35966);
            rule__DeclExport__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclExport__Group__4_in_rule__DeclExport__Group__35969);
            rule__DeclExport__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__3"


    // $ANTLR start "rule__DeclExport__Group__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2720:1: rule__DeclExport__Group__3__Impl : ( ':' ) ;
    public final void rule__DeclExport__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2724:1: ( ( ':' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2725:1: ( ':' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2725:1: ( ':' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2726:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getColonKeyword_3()); 
            }
            match(input,35,FOLLOW_35_in_rule__DeclExport__Group__3__Impl5997); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getColonKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__3__Impl"


    // $ANTLR start "rule__DeclExport__Group__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2739:1: rule__DeclExport__Group__4 : rule__DeclExport__Group__4__Impl ;
    public final void rule__DeclExport__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2743:1: ( rule__DeclExport__Group__4__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2744:2: rule__DeclExport__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__DeclExport__Group__4__Impl_in_rule__DeclExport__Group__46028);
            rule__DeclExport__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__4"


    // $ANTLR start "rule__DeclExport__Group__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2750:1: rule__DeclExport__Group__4__Impl : ( ( rule__DeclExport__TypeAssignment_4 ) ) ;
    public final void rule__DeclExport__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2754:1: ( ( ( rule__DeclExport__TypeAssignment_4 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2755:1: ( ( rule__DeclExport__TypeAssignment_4 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2755:1: ( ( rule__DeclExport__TypeAssignment_4 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2756:1: ( rule__DeclExport__TypeAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getTypeAssignment_4()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2757:1: ( rule__DeclExport__TypeAssignment_4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2757:2: rule__DeclExport__TypeAssignment_4
            {
            pushFollow(FOLLOW_rule__DeclExport__TypeAssignment_4_in_rule__DeclExport__Group__4__Impl6055);
            rule__DeclExport__TypeAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getTypeAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__Group__4__Impl"


    // $ANTLR start "rule__DeclType__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2777:1: rule__DeclType__Group__0 : rule__DeclType__Group__0__Impl rule__DeclType__Group__1 ;
    public final void rule__DeclType__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2781:1: ( rule__DeclType__Group__0__Impl rule__DeclType__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2782:2: rule__DeclType__Group__0__Impl rule__DeclType__Group__1
            {
            pushFollow(FOLLOW_rule__DeclType__Group__0__Impl_in_rule__DeclType__Group__06095);
            rule__DeclType__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclType__Group__1_in_rule__DeclType__Group__06098);
            rule__DeclType__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__0"


    // $ANTLR start "rule__DeclType__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2789:1: rule__DeclType__Group__0__Impl : ( 'type' ) ;
    public final void rule__DeclType__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2793:1: ( ( 'type' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2794:1: ( 'type' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2794:1: ( 'type' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2795:1: 'type'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getTypeKeyword_0()); 
            }
            match(input,36,FOLLOW_36_in_rule__DeclType__Group__0__Impl6126); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getTypeKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__0__Impl"


    // $ANTLR start "rule__DeclType__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2808:1: rule__DeclType__Group__1 : rule__DeclType__Group__1__Impl rule__DeclType__Group__2 ;
    public final void rule__DeclType__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2812:1: ( rule__DeclType__Group__1__Impl rule__DeclType__Group__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2813:2: rule__DeclType__Group__1__Impl rule__DeclType__Group__2
            {
            pushFollow(FOLLOW_rule__DeclType__Group__1__Impl_in_rule__DeclType__Group__16157);
            rule__DeclType__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclType__Group__2_in_rule__DeclType__Group__16160);
            rule__DeclType__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__1"


    // $ANTLR start "rule__DeclType__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2820:1: rule__DeclType__Group__1__Impl : ( ( rule__DeclType__NameAssignment_1 ) ) ;
    public final void rule__DeclType__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2824:1: ( ( ( rule__DeclType__NameAssignment_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2825:1: ( ( rule__DeclType__NameAssignment_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2825:1: ( ( rule__DeclType__NameAssignment_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2826:1: ( rule__DeclType__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getNameAssignment_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2827:1: ( rule__DeclType__NameAssignment_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2827:2: rule__DeclType__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__DeclType__NameAssignment_1_in_rule__DeclType__Group__1__Impl6187);
            rule__DeclType__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__1__Impl"


    // $ANTLR start "rule__DeclType__Group__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2837:1: rule__DeclType__Group__2 : rule__DeclType__Group__2__Impl rule__DeclType__Group__3 ;
    public final void rule__DeclType__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2841:1: ( rule__DeclType__Group__2__Impl rule__DeclType__Group__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2842:2: rule__DeclType__Group__2__Impl rule__DeclType__Group__3
            {
            pushFollow(FOLLOW_rule__DeclType__Group__2__Impl_in_rule__DeclType__Group__26217);
            rule__DeclType__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclType__Group__3_in_rule__DeclType__Group__26220);
            rule__DeclType__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__2"


    // $ANTLR start "rule__DeclType__Group__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2849:1: rule__DeclType__Group__2__Impl : ( ( rule__DeclType__TyVarsAssignment_2 )? ) ;
    public final void rule__DeclType__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2853:1: ( ( ( rule__DeclType__TyVarsAssignment_2 )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2854:1: ( ( rule__DeclType__TyVarsAssignment_2 )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2854:1: ( ( rule__DeclType__TyVarsAssignment_2 )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2855:1: ( rule__DeclType__TyVarsAssignment_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getTyVarsAssignment_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2856:1: ( rule__DeclType__TyVarsAssignment_2 )?
            int alt61=2;
            int LA61_0 = input.LA(1);

            if ( (LA61_0==40) ) {
                alt61=1;
            }
            switch (alt61) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2856:2: rule__DeclType__TyVarsAssignment_2
                    {
                    pushFollow(FOLLOW_rule__DeclType__TyVarsAssignment_2_in_rule__DeclType__Group__2__Impl6247);
                    rule__DeclType__TyVarsAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getTyVarsAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__2__Impl"


    // $ANTLR start "rule__DeclType__Group__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2866:1: rule__DeclType__Group__3 : rule__DeclType__Group__3__Impl rule__DeclType__Group__4 ;
    public final void rule__DeclType__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2870:1: ( rule__DeclType__Group__3__Impl rule__DeclType__Group__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2871:2: rule__DeclType__Group__3__Impl rule__DeclType__Group__4
            {
            pushFollow(FOLLOW_rule__DeclType__Group__3__Impl_in_rule__DeclType__Group__36278);
            rule__DeclType__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclType__Group__4_in_rule__DeclType__Group__36281);
            rule__DeclType__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__3"


    // $ANTLR start "rule__DeclType__Group__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2878:1: rule__DeclType__Group__3__Impl : ( '=' ) ;
    public final void rule__DeclType__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2882:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2883:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2883:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2884:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getEqualsSignKeyword_3()); 
            }
            match(input,37,FOLLOW_37_in_rule__DeclType__Group__3__Impl6309); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getEqualsSignKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__3__Impl"


    // $ANTLR start "rule__DeclType__Group__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2897:1: rule__DeclType__Group__4 : rule__DeclType__Group__4__Impl ;
    public final void rule__DeclType__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2901:1: ( rule__DeclType__Group__4__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2902:2: rule__DeclType__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__DeclType__Group__4__Impl_in_rule__DeclType__Group__46340);
            rule__DeclType__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__4"


    // $ANTLR start "rule__DeclType__Group__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2908:1: rule__DeclType__Group__4__Impl : ( ( rule__DeclType__Alternatives_4 ) ) ;
    public final void rule__DeclType__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2912:1: ( ( ( rule__DeclType__Alternatives_4 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2913:1: ( ( rule__DeclType__Alternatives_4 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2913:1: ( ( rule__DeclType__Alternatives_4 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2914:1: ( rule__DeclType__Alternatives_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getAlternatives_4()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2915:1: ( rule__DeclType__Alternatives_4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2915:2: rule__DeclType__Alternatives_4
            {
            pushFollow(FOLLOW_rule__DeclType__Alternatives_4_in_rule__DeclType__Group__4__Impl6367);
            rule__DeclType__Alternatives_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getAlternatives_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group__4__Impl"


    // $ANTLR start "rule__DeclType__Group_4_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2935:1: rule__DeclType__Group_4_0__0 : rule__DeclType__Group_4_0__0__Impl ;
    public final void rule__DeclType__Group_4_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2939:1: ( rule__DeclType__Group_4_0__0__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2940:2: rule__DeclType__Group_4_0__0__Impl
            {
            pushFollow(FOLLOW_rule__DeclType__Group_4_0__0__Impl_in_rule__DeclType__Group_4_0__06407);
            rule__DeclType__Group_4_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0__0"


    // $ANTLR start "rule__DeclType__Group_4_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2946:1: rule__DeclType__Group_4_0__0__Impl : ( ( rule__DeclType__Group_4_0_0__0 ) ) ;
    public final void rule__DeclType__Group_4_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2950:1: ( ( ( rule__DeclType__Group_4_0_0__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2951:1: ( ( rule__DeclType__Group_4_0_0__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2951:1: ( ( rule__DeclType__Group_4_0_0__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2952:1: ( rule__DeclType__Group_4_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getGroup_4_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2953:1: ( rule__DeclType__Group_4_0_0__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2953:2: rule__DeclType__Group_4_0_0__0
            {
            pushFollow(FOLLOW_rule__DeclType__Group_4_0_0__0_in_rule__DeclType__Group_4_0__0__Impl6434);
            rule__DeclType__Group_4_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getGroup_4_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0__0__Impl"


    // $ANTLR start "rule__DeclType__Group_4_0_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2965:1: rule__DeclType__Group_4_0_0__0 : rule__DeclType__Group_4_0_0__0__Impl rule__DeclType__Group_4_0_0__1 ;
    public final void rule__DeclType__Group_4_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2969:1: ( rule__DeclType__Group_4_0_0__0__Impl rule__DeclType__Group_4_0_0__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2970:2: rule__DeclType__Group_4_0_0__0__Impl rule__DeclType__Group_4_0_0__1
            {
            pushFollow(FOLLOW_rule__DeclType__Group_4_0_0__0__Impl_in_rule__DeclType__Group_4_0_0__06466);
            rule__DeclType__Group_4_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclType__Group_4_0_0__1_in_rule__DeclType__Group_4_0_0__06469);
            rule__DeclType__Group_4_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0_0__0"


    // $ANTLR start "rule__DeclType__Group_4_0_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2977:1: rule__DeclType__Group_4_0_0__0__Impl : ( ( rule__DeclType__ConDeclAssignment_4_0_0_0 ) ) ;
    public final void rule__DeclType__Group_4_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2981:1: ( ( ( rule__DeclType__ConDeclAssignment_4_0_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2982:1: ( ( rule__DeclType__ConDeclAssignment_4_0_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2982:1: ( ( rule__DeclType__ConDeclAssignment_4_0_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2983:1: ( rule__DeclType__ConDeclAssignment_4_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getConDeclAssignment_4_0_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2984:1: ( rule__DeclType__ConDeclAssignment_4_0_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2984:2: rule__DeclType__ConDeclAssignment_4_0_0_0
            {
            pushFollow(FOLLOW_rule__DeclType__ConDeclAssignment_4_0_0_0_in_rule__DeclType__Group_4_0_0__0__Impl6496);
            rule__DeclType__ConDeclAssignment_4_0_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getConDeclAssignment_4_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0_0__0__Impl"


    // $ANTLR start "rule__DeclType__Group_4_0_0__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2994:1: rule__DeclType__Group_4_0_0__1 : rule__DeclType__Group_4_0_0__1__Impl ;
    public final void rule__DeclType__Group_4_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2998:1: ( rule__DeclType__Group_4_0_0__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:2999:2: rule__DeclType__Group_4_0_0__1__Impl
            {
            pushFollow(FOLLOW_rule__DeclType__Group_4_0_0__1__Impl_in_rule__DeclType__Group_4_0_0__16526);
            rule__DeclType__Group_4_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0_0__1"


    // $ANTLR start "rule__DeclType__Group_4_0_0__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3005:1: rule__DeclType__Group_4_0_0__1__Impl : ( ( rule__DeclType__Group_4_0_0_1__0 )* ) ;
    public final void rule__DeclType__Group_4_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3009:1: ( ( ( rule__DeclType__Group_4_0_0_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3010:1: ( ( rule__DeclType__Group_4_0_0_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3010:1: ( ( rule__DeclType__Group_4_0_0_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3011:1: ( rule__DeclType__Group_4_0_0_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getGroup_4_0_0_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3012:1: ( rule__DeclType__Group_4_0_0_1__0 )*
            loop62:
            do {
                int alt62=2;
                int LA62_0 = input.LA(1);

                if ( (LA62_0==38) ) {
                    alt62=1;
                }


                switch (alt62) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3012:2: rule__DeclType__Group_4_0_0_1__0
            	    {
            	    pushFollow(FOLLOW_rule__DeclType__Group_4_0_0_1__0_in_rule__DeclType__Group_4_0_0__1__Impl6553);
            	    rule__DeclType__Group_4_0_0_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop62;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getGroup_4_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0_0__1__Impl"


    // $ANTLR start "rule__DeclType__Group_4_0_0_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3026:1: rule__DeclType__Group_4_0_0_1__0 : rule__DeclType__Group_4_0_0_1__0__Impl rule__DeclType__Group_4_0_0_1__1 ;
    public final void rule__DeclType__Group_4_0_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3030:1: ( rule__DeclType__Group_4_0_0_1__0__Impl rule__DeclType__Group_4_0_0_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3031:2: rule__DeclType__Group_4_0_0_1__0__Impl rule__DeclType__Group_4_0_0_1__1
            {
            pushFollow(FOLLOW_rule__DeclType__Group_4_0_0_1__0__Impl_in_rule__DeclType__Group_4_0_0_1__06588);
            rule__DeclType__Group_4_0_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclType__Group_4_0_0_1__1_in_rule__DeclType__Group_4_0_0_1__06591);
            rule__DeclType__Group_4_0_0_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0_0_1__0"


    // $ANTLR start "rule__DeclType__Group_4_0_0_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3038:1: rule__DeclType__Group_4_0_0_1__0__Impl : ( '|' ) ;
    public final void rule__DeclType__Group_4_0_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3042:1: ( ( '|' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3043:1: ( '|' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3043:1: ( '|' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3044:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getVerticalLineKeyword_4_0_0_1_0()); 
            }
            match(input,38,FOLLOW_38_in_rule__DeclType__Group_4_0_0_1__0__Impl6619); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getVerticalLineKeyword_4_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0_0_1__0__Impl"


    // $ANTLR start "rule__DeclType__Group_4_0_0_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3057:1: rule__DeclType__Group_4_0_0_1__1 : rule__DeclType__Group_4_0_0_1__1__Impl ;
    public final void rule__DeclType__Group_4_0_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3061:1: ( rule__DeclType__Group_4_0_0_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3062:2: rule__DeclType__Group_4_0_0_1__1__Impl
            {
            pushFollow(FOLLOW_rule__DeclType__Group_4_0_0_1__1__Impl_in_rule__DeclType__Group_4_0_0_1__16650);
            rule__DeclType__Group_4_0_0_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0_0_1__1"


    // $ANTLR start "rule__DeclType__Group_4_0_0_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3068:1: rule__DeclType__Group_4_0_0_1__1__Impl : ( ( rule__DeclType__ConDeclAssignment_4_0_0_1_1 ) ) ;
    public final void rule__DeclType__Group_4_0_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3072:1: ( ( ( rule__DeclType__ConDeclAssignment_4_0_0_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3073:1: ( ( rule__DeclType__ConDeclAssignment_4_0_0_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3073:1: ( ( rule__DeclType__ConDeclAssignment_4_0_0_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3074:1: ( rule__DeclType__ConDeclAssignment_4_0_0_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getConDeclAssignment_4_0_0_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3075:1: ( rule__DeclType__ConDeclAssignment_4_0_0_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3075:2: rule__DeclType__ConDeclAssignment_4_0_0_1_1
            {
            pushFollow(FOLLOW_rule__DeclType__ConDeclAssignment_4_0_0_1_1_in_rule__DeclType__Group_4_0_0_1__1__Impl6677);
            rule__DeclType__ConDeclAssignment_4_0_0_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getConDeclAssignment_4_0_0_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__Group_4_0_0_1__1__Impl"


    // $ANTLR start "rule__DeclVal__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3089:1: rule__DeclVal__Group__0 : rule__DeclVal__Group__0__Impl rule__DeclVal__Group__1 ;
    public final void rule__DeclVal__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3093:1: ( rule__DeclVal__Group__0__Impl rule__DeclVal__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3094:2: rule__DeclVal__Group__0__Impl rule__DeclVal__Group__1
            {
            pushFollow(FOLLOW_rule__DeclVal__Group__0__Impl_in_rule__DeclVal__Group__06711);
            rule__DeclVal__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group__1_in_rule__DeclVal__Group__06714);
            rule__DeclVal__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group__0"


    // $ANTLR start "rule__DeclVal__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3101:1: rule__DeclVal__Group__0__Impl : ( 'val' ) ;
    public final void rule__DeclVal__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3105:1: ( ( 'val' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3106:1: ( 'val' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3106:1: ( 'val' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3107:1: 'val'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getValKeyword_0()); 
            }
            match(input,39,FOLLOW_39_in_rule__DeclVal__Group__0__Impl6742); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getValKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group__0__Impl"


    // $ANTLR start "rule__DeclVal__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3120:1: rule__DeclVal__Group__1 : rule__DeclVal__Group__1__Impl ;
    public final void rule__DeclVal__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3124:1: ( rule__DeclVal__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3125:2: rule__DeclVal__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__DeclVal__Group__1__Impl_in_rule__DeclVal__Group__16773);
            rule__DeclVal__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group__1"


    // $ANTLR start "rule__DeclVal__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3131:1: rule__DeclVal__Group__1__Impl : ( ( rule__DeclVal__Alternatives_1 ) ) ;
    public final void rule__DeclVal__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3135:1: ( ( ( rule__DeclVal__Alternatives_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3136:1: ( ( rule__DeclVal__Alternatives_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3136:1: ( ( rule__DeclVal__Alternatives_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3137:1: ( rule__DeclVal__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getAlternatives_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3138:1: ( rule__DeclVal__Alternatives_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3138:2: rule__DeclVal__Alternatives_1
            {
            pushFollow(FOLLOW_rule__DeclVal__Alternatives_1_in_rule__DeclVal__Group__1__Impl6800);
            rule__DeclVal__Alternatives_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group__1__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3152:1: rule__DeclVal__Group_1_0__0 : rule__DeclVal__Group_1_0__0__Impl ;
    public final void rule__DeclVal__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3156:1: ( rule__DeclVal__Group_1_0__0__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3157:2: rule__DeclVal__Group_1_0__0__Impl
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_0__0__Impl_in_rule__DeclVal__Group_1_0__06834);
            rule__DeclVal__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0__0"


    // $ANTLR start "rule__DeclVal__Group_1_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3163:1: rule__DeclVal__Group_1_0__0__Impl : ( ( rule__DeclVal__Group_1_0_0__0 ) ) ;
    public final void rule__DeclVal__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3167:1: ( ( ( rule__DeclVal__Group_1_0_0__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3168:1: ( ( rule__DeclVal__Group_1_0_0__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3168:1: ( ( rule__DeclVal__Group_1_0_0__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3169:1: ( rule__DeclVal__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getGroup_1_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3170:1: ( rule__DeclVal__Group_1_0_0__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3170:2: rule__DeclVal__Group_1_0_0__0
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_0_0__0_in_rule__DeclVal__Group_1_0__0__Impl6861);
            rule__DeclVal__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0__0__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_0_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3182:1: rule__DeclVal__Group_1_0_0__0 : rule__DeclVal__Group_1_0_0__0__Impl rule__DeclVal__Group_1_0_0__1 ;
    public final void rule__DeclVal__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3186:1: ( rule__DeclVal__Group_1_0_0__0__Impl rule__DeclVal__Group_1_0_0__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3187:2: rule__DeclVal__Group_1_0_0__0__Impl rule__DeclVal__Group_1_0_0__1
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_0_0__0__Impl_in_rule__DeclVal__Group_1_0_0__06893);
            rule__DeclVal__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_0_0__1_in_rule__DeclVal__Group_1_0_0__06896);
            rule__DeclVal__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0_0__0"


    // $ANTLR start "rule__DeclVal__Group_1_0_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3194:1: rule__DeclVal__Group_1_0_0__0__Impl : ( ( rule__DeclVal__Alternatives_1_0_0_0 ) ) ;
    public final void rule__DeclVal__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3198:1: ( ( ( rule__DeclVal__Alternatives_1_0_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3199:1: ( ( rule__DeclVal__Alternatives_1_0_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3199:1: ( ( rule__DeclVal__Alternatives_1_0_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3200:1: ( rule__DeclVal__Alternatives_1_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getAlternatives_1_0_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3201:1: ( rule__DeclVal__Alternatives_1_0_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3201:2: rule__DeclVal__Alternatives_1_0_0_0
            {
            pushFollow(FOLLOW_rule__DeclVal__Alternatives_1_0_0_0_in_rule__DeclVal__Group_1_0_0__0__Impl6923);
            rule__DeclVal__Alternatives_1_0_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getAlternatives_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_0_0__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3211:1: rule__DeclVal__Group_1_0_0__1 : rule__DeclVal__Group_1_0_0__1__Impl rule__DeclVal__Group_1_0_0__2 ;
    public final void rule__DeclVal__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3215:1: ( rule__DeclVal__Group_1_0_0__1__Impl rule__DeclVal__Group_1_0_0__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3216:2: rule__DeclVal__Group_1_0_0__1__Impl rule__DeclVal__Group_1_0_0__2
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_0_0__1__Impl_in_rule__DeclVal__Group_1_0_0__16953);
            rule__DeclVal__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_0_0__2_in_rule__DeclVal__Group_1_0_0__16956);
            rule__DeclVal__Group_1_0_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0_0__1"


    // $ANTLR start "rule__DeclVal__Group_1_0_0__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3223:1: rule__DeclVal__Group_1_0_0__1__Impl : ( ( rule__DeclVal__AttrAssignment_1_0_0_1 )* ) ;
    public final void rule__DeclVal__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3227:1: ( ( ( rule__DeclVal__AttrAssignment_1_0_0_1 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3228:1: ( ( rule__DeclVal__AttrAssignment_1_0_0_1 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3228:1: ( ( rule__DeclVal__AttrAssignment_1_0_0_1 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3229:1: ( rule__DeclVal__AttrAssignment_1_0_0_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getAttrAssignment_1_0_0_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3230:1: ( rule__DeclVal__AttrAssignment_1_0_0_1 )*
            loop63:
            do {
                int alt63=2;
                int LA63_0 = input.LA(1);

                if ( ((LA63_0>=RULE_ID && LA63_0<=RULE_S)) ) {
                    alt63=1;
                }


                switch (alt63) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3230:2: rule__DeclVal__AttrAssignment_1_0_0_1
            	    {
            	    pushFollow(FOLLOW_rule__DeclVal__AttrAssignment_1_0_0_1_in_rule__DeclVal__Group_1_0_0__1__Impl6983);
            	    rule__DeclVal__AttrAssignment_1_0_0_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop63;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getAttrAssignment_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_0_0__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3240:1: rule__DeclVal__Group_1_0_0__2 : rule__DeclVal__Group_1_0_0__2__Impl rule__DeclVal__Group_1_0_0__3 ;
    public final void rule__DeclVal__Group_1_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3244:1: ( rule__DeclVal__Group_1_0_0__2__Impl rule__DeclVal__Group_1_0_0__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3245:2: rule__DeclVal__Group_1_0_0__2__Impl rule__DeclVal__Group_1_0_0__3
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_0_0__2__Impl_in_rule__DeclVal__Group_1_0_0__27014);
            rule__DeclVal__Group_1_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_0_0__3_in_rule__DeclVal__Group_1_0_0__27017);
            rule__DeclVal__Group_1_0_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0_0__2"


    // $ANTLR start "rule__DeclVal__Group_1_0_0__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3252:1: rule__DeclVal__Group_1_0_0__2__Impl : ( '=' ) ;
    public final void rule__DeclVal__Group_1_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3256:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3257:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3257:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3258:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getEqualsSignKeyword_1_0_0_2()); 
            }
            match(input,37,FOLLOW_37_in_rule__DeclVal__Group_1_0_0__2__Impl7045); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getEqualsSignKeyword_1_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0_0__2__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_0_0__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3271:1: rule__DeclVal__Group_1_0_0__3 : rule__DeclVal__Group_1_0_0__3__Impl ;
    public final void rule__DeclVal__Group_1_0_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3275:1: ( rule__DeclVal__Group_1_0_0__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3276:2: rule__DeclVal__Group_1_0_0__3__Impl
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_0_0__3__Impl_in_rule__DeclVal__Group_1_0_0__37076);
            rule__DeclVal__Group_1_0_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0_0__3"


    // $ANTLR start "rule__DeclVal__Group_1_0_0__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3282:1: rule__DeclVal__Group_1_0_0__3__Impl : ( ( rule__DeclVal__ExpAssignment_1_0_0_3 ) ) ;
    public final void rule__DeclVal__Group_1_0_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3286:1: ( ( ( rule__DeclVal__ExpAssignment_1_0_0_3 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3287:1: ( ( rule__DeclVal__ExpAssignment_1_0_0_3 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3287:1: ( ( rule__DeclVal__ExpAssignment_1_0_0_3 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3288:1: ( rule__DeclVal__ExpAssignment_1_0_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpAssignment_1_0_0_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3289:1: ( rule__DeclVal__ExpAssignment_1_0_0_3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3289:2: rule__DeclVal__ExpAssignment_1_0_0_3
            {
            pushFollow(FOLLOW_rule__DeclVal__ExpAssignment_1_0_0_3_in_rule__DeclVal__Group_1_0_0__3__Impl7103);
            rule__DeclVal__ExpAssignment_1_0_0_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpAssignment_1_0_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_0_0__3__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3307:1: rule__DeclVal__Group_1_1__0 : rule__DeclVal__Group_1_1__0__Impl rule__DeclVal__Group_1_1__1 ;
    public final void rule__DeclVal__Group_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3311:1: ( rule__DeclVal__Group_1_1__0__Impl rule__DeclVal__Group_1_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3312:2: rule__DeclVal__Group_1_1__0__Impl rule__DeclVal__Group_1_1__1
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_1__0__Impl_in_rule__DeclVal__Group_1_1__07141);
            rule__DeclVal__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_1__1_in_rule__DeclVal__Group_1_1__07144);
            rule__DeclVal__Group_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1__0"


    // $ANTLR start "rule__DeclVal__Group_1_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3319:1: rule__DeclVal__Group_1_1__0__Impl : ( ( rule__DeclVal__Group_1_1_0__0 )* ) ;
    public final void rule__DeclVal__Group_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3323:1: ( ( ( rule__DeclVal__Group_1_1_0__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3324:1: ( ( rule__DeclVal__Group_1_1_0__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3324:1: ( ( rule__DeclVal__Group_1_1_0__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3325:1: ( rule__DeclVal__Group_1_1_0__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getGroup_1_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3326:1: ( rule__DeclVal__Group_1_1_0__0 )*
            loop64:
            do {
                int alt64=2;
                int LA64_0 = input.LA(1);

                if ( ((LA64_0>=RULE_MIXID && LA64_0<=RULE_USCORE)) ) {
                    alt64=1;
                }


                switch (alt64) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3326:2: rule__DeclVal__Group_1_1_0__0
            	    {
            	    pushFollow(FOLLOW_rule__DeclVal__Group_1_1_0__0_in_rule__DeclVal__Group_1_1__0__Impl7171);
            	    rule__DeclVal__Group_1_1_0__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop64;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getGroup_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1__0__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3336:1: rule__DeclVal__Group_1_1__1 : rule__DeclVal__Group_1_1__1__Impl rule__DeclVal__Group_1_1__2 ;
    public final void rule__DeclVal__Group_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3340:1: ( rule__DeclVal__Group_1_1__1__Impl rule__DeclVal__Group_1_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3341:2: rule__DeclVal__Group_1_1__1__Impl rule__DeclVal__Group_1_1__2
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_1__1__Impl_in_rule__DeclVal__Group_1_1__17202);
            rule__DeclVal__Group_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_1__2_in_rule__DeclVal__Group_1_1__17205);
            rule__DeclVal__Group_1_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1__1"


    // $ANTLR start "rule__DeclVal__Group_1_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3348:1: rule__DeclVal__Group_1_1__1__Impl : ( '=' ) ;
    public final void rule__DeclVal__Group_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3352:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3353:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3353:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3354:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getEqualsSignKeyword_1_1_1()); 
            }
            match(input,37,FOLLOW_37_in_rule__DeclVal__Group_1_1__1__Impl7233); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getEqualsSignKeyword_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1__1__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3367:1: rule__DeclVal__Group_1_1__2 : rule__DeclVal__Group_1_1__2__Impl ;
    public final void rule__DeclVal__Group_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3371:1: ( rule__DeclVal__Group_1_1__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3372:2: rule__DeclVal__Group_1_1__2__Impl
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_1__2__Impl_in_rule__DeclVal__Group_1_1__27264);
            rule__DeclVal__Group_1_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1__2"


    // $ANTLR start "rule__DeclVal__Group_1_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3378:1: rule__DeclVal__Group_1_1__2__Impl : ( ( rule__DeclVal__ExpAssignment_1_1_2 ) ) ;
    public final void rule__DeclVal__Group_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3382:1: ( ( ( rule__DeclVal__ExpAssignment_1_1_2 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3383:1: ( ( rule__DeclVal__ExpAssignment_1_1_2 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3383:1: ( ( rule__DeclVal__ExpAssignment_1_1_2 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3384:1: ( rule__DeclVal__ExpAssignment_1_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpAssignment_1_1_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3385:1: ( rule__DeclVal__ExpAssignment_1_1_2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3385:2: rule__DeclVal__ExpAssignment_1_1_2
            {
            pushFollow(FOLLOW_rule__DeclVal__ExpAssignment_1_1_2_in_rule__DeclVal__Group_1_1__2__Impl7291);
            rule__DeclVal__ExpAssignment_1_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpAssignment_1_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1__2__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_1_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3401:1: rule__DeclVal__Group_1_1_0__0 : rule__DeclVal__Group_1_1_0__0__Impl rule__DeclVal__Group_1_1_0__1 ;
    public final void rule__DeclVal__Group_1_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3405:1: ( rule__DeclVal__Group_1_1_0__0__Impl rule__DeclVal__Group_1_1_0__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3406:2: rule__DeclVal__Group_1_1_0__0__Impl rule__DeclVal__Group_1_1_0__1
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_1_0__0__Impl_in_rule__DeclVal__Group_1_1_0__07327);
            rule__DeclVal__Group_1_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_1_0__1_in_rule__DeclVal__Group_1_1_0__07330);
            rule__DeclVal__Group_1_1_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1_0__0"


    // $ANTLR start "rule__DeclVal__Group_1_1_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3413:1: rule__DeclVal__Group_1_1_0__0__Impl : ( ( rule__DeclVal__MidAssignment_1_1_0_0 ) ) ;
    public final void rule__DeclVal__Group_1_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3417:1: ( ( ( rule__DeclVal__MidAssignment_1_1_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3418:1: ( ( rule__DeclVal__MidAssignment_1_1_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3418:1: ( ( rule__DeclVal__MidAssignment_1_1_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3419:1: ( rule__DeclVal__MidAssignment_1_1_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getMidAssignment_1_1_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3420:1: ( rule__DeclVal__MidAssignment_1_1_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3420:2: rule__DeclVal__MidAssignment_1_1_0_0
            {
            pushFollow(FOLLOW_rule__DeclVal__MidAssignment_1_1_0_0_in_rule__DeclVal__Group_1_1_0__0__Impl7357);
            rule__DeclVal__MidAssignment_1_1_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getMidAssignment_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1_0__0__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_1_0__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3430:1: rule__DeclVal__Group_1_1_0__1 : rule__DeclVal__Group_1_1_0__1__Impl ;
    public final void rule__DeclVal__Group_1_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3434:1: ( rule__DeclVal__Group_1_1_0__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3435:2: rule__DeclVal__Group_1_1_0__1__Impl
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_1_0__1__Impl_in_rule__DeclVal__Group_1_1_0__17387);
            rule__DeclVal__Group_1_1_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1_0__1"


    // $ANTLR start "rule__DeclVal__Group_1_1_0__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3441:1: rule__DeclVal__Group_1_1_0__1__Impl : ( ( rule__DeclVal__AttrAssignment_1_1_0_1 ) ) ;
    public final void rule__DeclVal__Group_1_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3445:1: ( ( ( rule__DeclVal__AttrAssignment_1_1_0_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3446:1: ( ( rule__DeclVal__AttrAssignment_1_1_0_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3446:1: ( ( rule__DeclVal__AttrAssignment_1_1_0_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3447:1: ( rule__DeclVal__AttrAssignment_1_1_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getAttrAssignment_1_1_0_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3448:1: ( rule__DeclVal__AttrAssignment_1_1_0_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3448:2: rule__DeclVal__AttrAssignment_1_1_0_1
            {
            pushFollow(FOLLOW_rule__DeclVal__AttrAssignment_1_1_0_1_in_rule__DeclVal__Group_1_1_0__1__Impl7414);
            rule__DeclVal__AttrAssignment_1_1_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getAttrAssignment_1_1_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_1_0__1__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3462:1: rule__DeclVal__Group_1_2__0 : rule__DeclVal__Group_1_2__0__Impl rule__DeclVal__Group_1_2__1 ;
    public final void rule__DeclVal__Group_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3466:1: ( rule__DeclVal__Group_1_2__0__Impl rule__DeclVal__Group_1_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3467:2: rule__DeclVal__Group_1_2__0__Impl rule__DeclVal__Group_1_2__1
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2__0__Impl_in_rule__DeclVal__Group_1_2__07448);
            rule__DeclVal__Group_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2__1_in_rule__DeclVal__Group_1_2__07451);
            rule__DeclVal__Group_1_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__0"


    // $ANTLR start "rule__DeclVal__Group_1_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3474:1: rule__DeclVal__Group_1_2__0__Impl : ( ( rule__DeclVal__NameAssignment_1_2_0 ) ) ;
    public final void rule__DeclVal__Group_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3478:1: ( ( ( rule__DeclVal__NameAssignment_1_2_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3479:1: ( ( rule__DeclVal__NameAssignment_1_2_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3479:1: ( ( rule__DeclVal__NameAssignment_1_2_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3480:1: ( rule__DeclVal__NameAssignment_1_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getNameAssignment_1_2_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3481:1: ( rule__DeclVal__NameAssignment_1_2_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3481:2: rule__DeclVal__NameAssignment_1_2_0
            {
            pushFollow(FOLLOW_rule__DeclVal__NameAssignment_1_2_0_in_rule__DeclVal__Group_1_2__0__Impl7478);
            rule__DeclVal__NameAssignment_1_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getNameAssignment_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__0__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3491:1: rule__DeclVal__Group_1_2__1 : rule__DeclVal__Group_1_2__1__Impl rule__DeclVal__Group_1_2__2 ;
    public final void rule__DeclVal__Group_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3495:1: ( rule__DeclVal__Group_1_2__1__Impl rule__DeclVal__Group_1_2__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3496:2: rule__DeclVal__Group_1_2__1__Impl rule__DeclVal__Group_1_2__2
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2__1__Impl_in_rule__DeclVal__Group_1_2__17508);
            rule__DeclVal__Group_1_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2__2_in_rule__DeclVal__Group_1_2__17511);
            rule__DeclVal__Group_1_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__1"


    // $ANTLR start "rule__DeclVal__Group_1_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3503:1: rule__DeclVal__Group_1_2__1__Impl : ( '[' ) ;
    public final void rule__DeclVal__Group_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3507:1: ( ( '[' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3508:1: ( '[' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3508:1: ( '[' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3509:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getLeftSquareBracketKeyword_1_2_1()); 
            }
            match(input,40,FOLLOW_40_in_rule__DeclVal__Group_1_2__1__Impl7539); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getLeftSquareBracketKeyword_1_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__1__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3522:1: rule__DeclVal__Group_1_2__2 : rule__DeclVal__Group_1_2__2__Impl rule__DeclVal__Group_1_2__3 ;
    public final void rule__DeclVal__Group_1_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3526:1: ( rule__DeclVal__Group_1_2__2__Impl rule__DeclVal__Group_1_2__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3527:2: rule__DeclVal__Group_1_2__2__Impl rule__DeclVal__Group_1_2__3
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2__2__Impl_in_rule__DeclVal__Group_1_2__27570);
            rule__DeclVal__Group_1_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2__3_in_rule__DeclVal__Group_1_2__27573);
            rule__DeclVal__Group_1_2__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__2"


    // $ANTLR start "rule__DeclVal__Group_1_2__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3534:1: rule__DeclVal__Group_1_2__2__Impl : ( ( rule__DeclVal__DecPatAssignment_1_2_2 )* ) ;
    public final void rule__DeclVal__Group_1_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3538:1: ( ( ( rule__DeclVal__DecPatAssignment_1_2_2 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3539:1: ( ( rule__DeclVal__DecPatAssignment_1_2_2 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3539:1: ( ( rule__DeclVal__DecPatAssignment_1_2_2 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3540:1: ( rule__DeclVal__DecPatAssignment_1_2_2 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getDecPatAssignment_1_2_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3541:1: ( rule__DeclVal__DecPatAssignment_1_2_2 )*
            loop65:
            do {
                int alt65=2;
                int LA65_0 = input.LA(1);

                if ( ((LA65_0>=RULE_ID && LA65_0<=RULE_S)||LA65_0==RULE_HEXINT||LA65_0==58) ) {
                    alt65=1;
                }


                switch (alt65) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3541:2: rule__DeclVal__DecPatAssignment_1_2_2
            	    {
            	    pushFollow(FOLLOW_rule__DeclVal__DecPatAssignment_1_2_2_in_rule__DeclVal__Group_1_2__2__Impl7600);
            	    rule__DeclVal__DecPatAssignment_1_2_2();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop65;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getDecPatAssignment_1_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__2__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3551:1: rule__DeclVal__Group_1_2__3 : rule__DeclVal__Group_1_2__3__Impl rule__DeclVal__Group_1_2__4 ;
    public final void rule__DeclVal__Group_1_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3555:1: ( rule__DeclVal__Group_1_2__3__Impl rule__DeclVal__Group_1_2__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3556:2: rule__DeclVal__Group_1_2__3__Impl rule__DeclVal__Group_1_2__4
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2__3__Impl_in_rule__DeclVal__Group_1_2__37631);
            rule__DeclVal__Group_1_2__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2__4_in_rule__DeclVal__Group_1_2__37634);
            rule__DeclVal__Group_1_2__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__3"


    // $ANTLR start "rule__DeclVal__Group_1_2__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3563:1: rule__DeclVal__Group_1_2__3__Impl : ( ']' ) ;
    public final void rule__DeclVal__Group_1_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3567:1: ( ( ']' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3568:1: ( ']' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3568:1: ( ']' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3569:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getRightSquareBracketKeyword_1_2_3()); 
            }
            match(input,41,FOLLOW_41_in_rule__DeclVal__Group_1_2__3__Impl7662); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getRightSquareBracketKeyword_1_2_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__3__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3582:1: rule__DeclVal__Group_1_2__4 : rule__DeclVal__Group_1_2__4__Impl ;
    public final void rule__DeclVal__Group_1_2__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3586:1: ( rule__DeclVal__Group_1_2__4__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3587:2: rule__DeclVal__Group_1_2__4__Impl
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2__4__Impl_in_rule__DeclVal__Group_1_2__47693);
            rule__DeclVal__Group_1_2__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__4"


    // $ANTLR start "rule__DeclVal__Group_1_2__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3593:1: rule__DeclVal__Group_1_2__4__Impl : ( ( rule__DeclVal__Alternatives_1_2_4 ) ) ;
    public final void rule__DeclVal__Group_1_2__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3597:1: ( ( ( rule__DeclVal__Alternatives_1_2_4 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3598:1: ( ( rule__DeclVal__Alternatives_1_2_4 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3598:1: ( ( rule__DeclVal__Alternatives_1_2_4 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3599:1: ( rule__DeclVal__Alternatives_1_2_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getAlternatives_1_2_4()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3600:1: ( rule__DeclVal__Alternatives_1_2_4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3600:2: rule__DeclVal__Alternatives_1_2_4
            {
            pushFollow(FOLLOW_rule__DeclVal__Alternatives_1_2_4_in_rule__DeclVal__Group_1_2__4__Impl7720);
            rule__DeclVal__Alternatives_1_2_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getAlternatives_1_2_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2__4__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3620:1: rule__DeclVal__Group_1_2_4_0__0 : rule__DeclVal__Group_1_2_4_0__0__Impl rule__DeclVal__Group_1_2_4_0__1 ;
    public final void rule__DeclVal__Group_1_2_4_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3624:1: ( rule__DeclVal__Group_1_2_4_0__0__Impl rule__DeclVal__Group_1_2_4_0__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3625:2: rule__DeclVal__Group_1_2_4_0__0__Impl rule__DeclVal__Group_1_2_4_0__1
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_0__0__Impl_in_rule__DeclVal__Group_1_2_4_0__07760);
            rule__DeclVal__Group_1_2_4_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_0__1_in_rule__DeclVal__Group_1_2_4_0__07763);
            rule__DeclVal__Group_1_2_4_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_0__0"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3632:1: rule__DeclVal__Group_1_2_4_0__0__Impl : ( '=' ) ;
    public final void rule__DeclVal__Group_1_2_4_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3636:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3637:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3637:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3638:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getEqualsSignKeyword_1_2_4_0_0()); 
            }
            match(input,37,FOLLOW_37_in_rule__DeclVal__Group_1_2_4_0__0__Impl7791); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getEqualsSignKeyword_1_2_4_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_0__0__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_0__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3651:1: rule__DeclVal__Group_1_2_4_0__1 : rule__DeclVal__Group_1_2_4_0__1__Impl ;
    public final void rule__DeclVal__Group_1_2_4_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3655:1: ( rule__DeclVal__Group_1_2_4_0__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3656:2: rule__DeclVal__Group_1_2_4_0__1__Impl
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_0__1__Impl_in_rule__DeclVal__Group_1_2_4_0__17822);
            rule__DeclVal__Group_1_2_4_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_0__1"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_0__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3662:1: rule__DeclVal__Group_1_2_4_0__1__Impl : ( ( rule__DeclVal__ExpAssignment_1_2_4_0_1 ) ) ;
    public final void rule__DeclVal__Group_1_2_4_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3666:1: ( ( ( rule__DeclVal__ExpAssignment_1_2_4_0_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3667:1: ( ( rule__DeclVal__ExpAssignment_1_2_4_0_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3667:1: ( ( rule__DeclVal__ExpAssignment_1_2_4_0_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3668:1: ( rule__DeclVal__ExpAssignment_1_2_4_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpAssignment_1_2_4_0_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3669:1: ( rule__DeclVal__ExpAssignment_1_2_4_0_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3669:2: rule__DeclVal__ExpAssignment_1_2_4_0_1
            {
            pushFollow(FOLLOW_rule__DeclVal__ExpAssignment_1_2_4_0_1_in_rule__DeclVal__Group_1_2_4_0__1__Impl7849);
            rule__DeclVal__ExpAssignment_1_2_4_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpAssignment_1_2_4_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_0__1__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3683:1: rule__DeclVal__Group_1_2_4_1__0 : rule__DeclVal__Group_1_2_4_1__0__Impl rule__DeclVal__Group_1_2_4_1__1 ;
    public final void rule__DeclVal__Group_1_2_4_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3687:1: ( rule__DeclVal__Group_1_2_4_1__0__Impl rule__DeclVal__Group_1_2_4_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3688:2: rule__DeclVal__Group_1_2_4_1__0__Impl rule__DeclVal__Group_1_2_4_1__1
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_1__0__Impl_in_rule__DeclVal__Group_1_2_4_1__07883);
            rule__DeclVal__Group_1_2_4_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_1__1_in_rule__DeclVal__Group_1_2_4_1__07886);
            rule__DeclVal__Group_1_2_4_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_1__0"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3695:1: rule__DeclVal__Group_1_2_4_1__0__Impl : ( '|' ) ;
    public final void rule__DeclVal__Group_1_2_4_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3699:1: ( ( '|' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3700:1: ( '|' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3700:1: ( '|' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3701:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getVerticalLineKeyword_1_2_4_1_0()); 
            }
            match(input,38,FOLLOW_38_in_rule__DeclVal__Group_1_2_4_1__0__Impl7914); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getVerticalLineKeyword_1_2_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_1__0__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3714:1: rule__DeclVal__Group_1_2_4_1__1 : rule__DeclVal__Group_1_2_4_1__1__Impl rule__DeclVal__Group_1_2_4_1__2 ;
    public final void rule__DeclVal__Group_1_2_4_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3718:1: ( rule__DeclVal__Group_1_2_4_1__1__Impl rule__DeclVal__Group_1_2_4_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3719:2: rule__DeclVal__Group_1_2_4_1__1__Impl rule__DeclVal__Group_1_2_4_1__2
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_1__1__Impl_in_rule__DeclVal__Group_1_2_4_1__17945);
            rule__DeclVal__Group_1_2_4_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_1__2_in_rule__DeclVal__Group_1_2_4_1__17948);
            rule__DeclVal__Group_1_2_4_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_1__1"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3726:1: rule__DeclVal__Group_1_2_4_1__1__Impl : ( ( rule__DeclVal__ExpsAssignment_1_2_4_1_1 ) ) ;
    public final void rule__DeclVal__Group_1_2_4_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3730:1: ( ( ( rule__DeclVal__ExpsAssignment_1_2_4_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3731:1: ( ( rule__DeclVal__ExpsAssignment_1_2_4_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3731:1: ( ( rule__DeclVal__ExpsAssignment_1_2_4_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3732:1: ( rule__DeclVal__ExpsAssignment_1_2_4_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpsAssignment_1_2_4_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3733:1: ( rule__DeclVal__ExpsAssignment_1_2_4_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3733:2: rule__DeclVal__ExpsAssignment_1_2_4_1_1
            {
            pushFollow(FOLLOW_rule__DeclVal__ExpsAssignment_1_2_4_1_1_in_rule__DeclVal__Group_1_2_4_1__1__Impl7975);
            rule__DeclVal__ExpsAssignment_1_2_4_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpsAssignment_1_2_4_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_1__1__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3743:1: rule__DeclVal__Group_1_2_4_1__2 : rule__DeclVal__Group_1_2_4_1__2__Impl rule__DeclVal__Group_1_2_4_1__3 ;
    public final void rule__DeclVal__Group_1_2_4_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3747:1: ( rule__DeclVal__Group_1_2_4_1__2__Impl rule__DeclVal__Group_1_2_4_1__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3748:2: rule__DeclVal__Group_1_2_4_1__2__Impl rule__DeclVal__Group_1_2_4_1__3
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_1__2__Impl_in_rule__DeclVal__Group_1_2_4_1__28005);
            rule__DeclVal__Group_1_2_4_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_1__3_in_rule__DeclVal__Group_1_2_4_1__28008);
            rule__DeclVal__Group_1_2_4_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_1__2"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3755:1: rule__DeclVal__Group_1_2_4_1__2__Impl : ( '=' ) ;
    public final void rule__DeclVal__Group_1_2_4_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3759:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3760:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3760:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3761:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getEqualsSignKeyword_1_2_4_1_2()); 
            }
            match(input,37,FOLLOW_37_in_rule__DeclVal__Group_1_2_4_1__2__Impl8036); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getEqualsSignKeyword_1_2_4_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_1__2__Impl"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_1__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3774:1: rule__DeclVal__Group_1_2_4_1__3 : rule__DeclVal__Group_1_2_4_1__3__Impl ;
    public final void rule__DeclVal__Group_1_2_4_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3778:1: ( rule__DeclVal__Group_1_2_4_1__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3779:2: rule__DeclVal__Group_1_2_4_1__3__Impl
            {
            pushFollow(FOLLOW_rule__DeclVal__Group_1_2_4_1__3__Impl_in_rule__DeclVal__Group_1_2_4_1__38067);
            rule__DeclVal__Group_1_2_4_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_1__3"


    // $ANTLR start "rule__DeclVal__Group_1_2_4_1__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3785:1: rule__DeclVal__Group_1_2_4_1__3__Impl : ( ( rule__DeclVal__ExpsAssignment_1_2_4_1_3 ) ) ;
    public final void rule__DeclVal__Group_1_2_4_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3789:1: ( ( ( rule__DeclVal__ExpsAssignment_1_2_4_1_3 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3790:1: ( ( rule__DeclVal__ExpsAssignment_1_2_4_1_3 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3790:1: ( ( rule__DeclVal__ExpsAssignment_1_2_4_1_3 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3791:1: ( rule__DeclVal__ExpsAssignment_1_2_4_1_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpsAssignment_1_2_4_1_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3792:1: ( rule__DeclVal__ExpsAssignment_1_2_4_1_3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3792:2: rule__DeclVal__ExpsAssignment_1_2_4_1_3
            {
            pushFollow(FOLLOW_rule__DeclVal__ExpsAssignment_1_2_4_1_3_in_rule__DeclVal__Group_1_2_4_1__3__Impl8094);
            rule__DeclVal__ExpsAssignment_1_2_4_1_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpsAssignment_1_2_4_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__Group_1_2_4_1__3__Impl"


    // $ANTLR start "rule__TyVars__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3810:1: rule__TyVars__Group__0 : rule__TyVars__Group__0__Impl rule__TyVars__Group__1 ;
    public final void rule__TyVars__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3814:1: ( rule__TyVars__Group__0__Impl rule__TyVars__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3815:2: rule__TyVars__Group__0__Impl rule__TyVars__Group__1
            {
            pushFollow(FOLLOW_rule__TyVars__Group__0__Impl_in_rule__TyVars__Group__08132);
            rule__TyVars__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TyVars__Group__1_in_rule__TyVars__Group__08135);
            rule__TyVars__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group__0"


    // $ANTLR start "rule__TyVars__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3822:1: rule__TyVars__Group__0__Impl : ( '[' ) ;
    public final void rule__TyVars__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3826:1: ( ( '[' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3827:1: ( '[' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3827:1: ( '[' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3828:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsAccess().getLeftSquareBracketKeyword_0()); 
            }
            match(input,40,FOLLOW_40_in_rule__TyVars__Group__0__Impl8163); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsAccess().getLeftSquareBracketKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group__0__Impl"


    // $ANTLR start "rule__TyVars__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3841:1: rule__TyVars__Group__1 : rule__TyVars__Group__1__Impl rule__TyVars__Group__2 ;
    public final void rule__TyVars__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3845:1: ( rule__TyVars__Group__1__Impl rule__TyVars__Group__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3846:2: rule__TyVars__Group__1__Impl rule__TyVars__Group__2
            {
            pushFollow(FOLLOW_rule__TyVars__Group__1__Impl_in_rule__TyVars__Group__18194);
            rule__TyVars__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TyVars__Group__2_in_rule__TyVars__Group__18197);
            rule__TyVars__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group__1"


    // $ANTLR start "rule__TyVars__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3853:1: rule__TyVars__Group__1__Impl : ( ( rule__TyVars__AttrAssignment_1 ) ) ;
    public final void rule__TyVars__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3857:1: ( ( ( rule__TyVars__AttrAssignment_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3858:1: ( ( rule__TyVars__AttrAssignment_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3858:1: ( ( rule__TyVars__AttrAssignment_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3859:1: ( rule__TyVars__AttrAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsAccess().getAttrAssignment_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3860:1: ( rule__TyVars__AttrAssignment_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3860:2: rule__TyVars__AttrAssignment_1
            {
            pushFollow(FOLLOW_rule__TyVars__AttrAssignment_1_in_rule__TyVars__Group__1__Impl8224);
            rule__TyVars__AttrAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsAccess().getAttrAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group__1__Impl"


    // $ANTLR start "rule__TyVars__Group__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3870:1: rule__TyVars__Group__2 : rule__TyVars__Group__2__Impl rule__TyVars__Group__3 ;
    public final void rule__TyVars__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3874:1: ( rule__TyVars__Group__2__Impl rule__TyVars__Group__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3875:2: rule__TyVars__Group__2__Impl rule__TyVars__Group__3
            {
            pushFollow(FOLLOW_rule__TyVars__Group__2__Impl_in_rule__TyVars__Group__28254);
            rule__TyVars__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TyVars__Group__3_in_rule__TyVars__Group__28257);
            rule__TyVars__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group__2"


    // $ANTLR start "rule__TyVars__Group__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3882:1: rule__TyVars__Group__2__Impl : ( ( rule__TyVars__Group_2__0 )* ) ;
    public final void rule__TyVars__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3886:1: ( ( ( rule__TyVars__Group_2__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3887:1: ( ( rule__TyVars__Group_2__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3887:1: ( ( rule__TyVars__Group_2__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3888:1: ( rule__TyVars__Group_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsAccess().getGroup_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3889:1: ( rule__TyVars__Group_2__0 )*
            loop66:
            do {
                int alt66=2;
                int LA66_0 = input.LA(1);

                if ( (LA66_0==42) ) {
                    alt66=1;
                }


                switch (alt66) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3889:2: rule__TyVars__Group_2__0
            	    {
            	    pushFollow(FOLLOW_rule__TyVars__Group_2__0_in_rule__TyVars__Group__2__Impl8284);
            	    rule__TyVars__Group_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop66;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsAccess().getGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group__2__Impl"


    // $ANTLR start "rule__TyVars__Group__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3899:1: rule__TyVars__Group__3 : rule__TyVars__Group__3__Impl ;
    public final void rule__TyVars__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3903:1: ( rule__TyVars__Group__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3904:2: rule__TyVars__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__TyVars__Group__3__Impl_in_rule__TyVars__Group__38315);
            rule__TyVars__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group__3"


    // $ANTLR start "rule__TyVars__Group__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3910:1: rule__TyVars__Group__3__Impl : ( ']' ) ;
    public final void rule__TyVars__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3914:1: ( ( ']' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3915:1: ( ']' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3915:1: ( ']' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3916:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsAccess().getRightSquareBracketKeyword_3()); 
            }
            match(input,41,FOLLOW_41_in_rule__TyVars__Group__3__Impl8343); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsAccess().getRightSquareBracketKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group__3__Impl"


    // $ANTLR start "rule__TyVars__Group_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3937:1: rule__TyVars__Group_2__0 : rule__TyVars__Group_2__0__Impl rule__TyVars__Group_2__1 ;
    public final void rule__TyVars__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3941:1: ( rule__TyVars__Group_2__0__Impl rule__TyVars__Group_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3942:2: rule__TyVars__Group_2__0__Impl rule__TyVars__Group_2__1
            {
            pushFollow(FOLLOW_rule__TyVars__Group_2__0__Impl_in_rule__TyVars__Group_2__08382);
            rule__TyVars__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TyVars__Group_2__1_in_rule__TyVars__Group_2__08385);
            rule__TyVars__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group_2__0"


    // $ANTLR start "rule__TyVars__Group_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3949:1: rule__TyVars__Group_2__0__Impl : ( ',' ) ;
    public final void rule__TyVars__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3953:1: ( ( ',' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3954:1: ( ',' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3954:1: ( ',' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3955:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsAccess().getCommaKeyword_2_0()); 
            }
            match(input,42,FOLLOW_42_in_rule__TyVars__Group_2__0__Impl8413); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsAccess().getCommaKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group_2__0__Impl"


    // $ANTLR start "rule__TyVars__Group_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3968:1: rule__TyVars__Group_2__1 : rule__TyVars__Group_2__1__Impl ;
    public final void rule__TyVars__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3972:1: ( rule__TyVars__Group_2__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3973:2: rule__TyVars__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__TyVars__Group_2__1__Impl_in_rule__TyVars__Group_2__18444);
            rule__TyVars__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group_2__1"


    // $ANTLR start "rule__TyVars__Group_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3979:1: rule__TyVars__Group_2__1__Impl : ( ( rule__TyVars__AttrAssignment_2_1 ) ) ;
    public final void rule__TyVars__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3983:1: ( ( ( rule__TyVars__AttrAssignment_2_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3984:1: ( ( rule__TyVars__AttrAssignment_2_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3984:1: ( ( rule__TyVars__AttrAssignment_2_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3985:1: ( rule__TyVars__AttrAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsAccess().getAttrAssignment_2_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3986:1: ( rule__TyVars__AttrAssignment_2_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:3986:2: rule__TyVars__AttrAssignment_2_1
            {
            pushFollow(FOLLOW_rule__TyVars__AttrAssignment_2_1_in_rule__TyVars__Group_2__1__Impl8471);
            rule__TyVars__AttrAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsAccess().getAttrAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__Group_2__1__Impl"


    // $ANTLR start "rule__ConDecl__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4000:1: rule__ConDecl__Group__0 : rule__ConDecl__Group__0__Impl rule__ConDecl__Group__1 ;
    public final void rule__ConDecl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4004:1: ( rule__ConDecl__Group__0__Impl rule__ConDecl__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4005:2: rule__ConDecl__Group__0__Impl rule__ConDecl__Group__1
            {
            pushFollow(FOLLOW_rule__ConDecl__Group__0__Impl_in_rule__ConDecl__Group__08505);
            rule__ConDecl__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ConDecl__Group__1_in_rule__ConDecl__Group__08508);
            rule__ConDecl__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__Group__0"


    // $ANTLR start "rule__ConDecl__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4012:1: rule__ConDecl__Group__0__Impl : ( ( rule__ConDecl__NameAssignment_0 ) ) ;
    public final void rule__ConDecl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4016:1: ( ( ( rule__ConDecl__NameAssignment_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4017:1: ( ( rule__ConDecl__NameAssignment_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4017:1: ( ( rule__ConDecl__NameAssignment_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4018:1: ( rule__ConDecl__NameAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConDeclAccess().getNameAssignment_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4019:1: ( rule__ConDecl__NameAssignment_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4019:2: rule__ConDecl__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__ConDecl__NameAssignment_0_in_rule__ConDecl__Group__0__Impl8535);
            rule__ConDecl__NameAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConDeclAccess().getNameAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__Group__0__Impl"


    // $ANTLR start "rule__ConDecl__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4029:1: rule__ConDecl__Group__1 : rule__ConDecl__Group__1__Impl ;
    public final void rule__ConDecl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4033:1: ( rule__ConDecl__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4034:2: rule__ConDecl__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__ConDecl__Group__1__Impl_in_rule__ConDecl__Group__18565);
            rule__ConDecl__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__Group__1"


    // $ANTLR start "rule__ConDecl__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4040:1: rule__ConDecl__Group__1__Impl : ( ( rule__ConDecl__Group_1__0 )? ) ;
    public final void rule__ConDecl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4044:1: ( ( ( rule__ConDecl__Group_1__0 )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4045:1: ( ( rule__ConDecl__Group_1__0 )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4045:1: ( ( rule__ConDecl__Group_1__0 )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4046:1: ( rule__ConDecl__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConDeclAccess().getGroup_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4047:1: ( rule__ConDecl__Group_1__0 )?
            int alt67=2;
            int LA67_0 = input.LA(1);

            if ( (LA67_0==43) ) {
                alt67=1;
            }
            switch (alt67) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4047:2: rule__ConDecl__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__ConDecl__Group_1__0_in_rule__ConDecl__Group__1__Impl8592);
                    rule__ConDecl__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConDeclAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__Group__1__Impl"


    // $ANTLR start "rule__ConDecl__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4061:1: rule__ConDecl__Group_1__0 : rule__ConDecl__Group_1__0__Impl rule__ConDecl__Group_1__1 ;
    public final void rule__ConDecl__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4065:1: ( rule__ConDecl__Group_1__0__Impl rule__ConDecl__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4066:2: rule__ConDecl__Group_1__0__Impl rule__ConDecl__Group_1__1
            {
            pushFollow(FOLLOW_rule__ConDecl__Group_1__0__Impl_in_rule__ConDecl__Group_1__08627);
            rule__ConDecl__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ConDecl__Group_1__1_in_rule__ConDecl__Group_1__08630);
            rule__ConDecl__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__Group_1__0"


    // $ANTLR start "rule__ConDecl__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4073:1: rule__ConDecl__Group_1__0__Impl : ( 'of' ) ;
    public final void rule__ConDecl__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4077:1: ( ( 'of' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4078:1: ( 'of' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4078:1: ( 'of' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4079:1: 'of'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConDeclAccess().getOfKeyword_1_0()); 
            }
            match(input,43,FOLLOW_43_in_rule__ConDecl__Group_1__0__Impl8658); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConDeclAccess().getOfKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__Group_1__0__Impl"


    // $ANTLR start "rule__ConDecl__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4092:1: rule__ConDecl__Group_1__1 : rule__ConDecl__Group_1__1__Impl ;
    public final void rule__ConDecl__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4096:1: ( rule__ConDecl__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4097:2: rule__ConDecl__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__ConDecl__Group_1__1__Impl_in_rule__ConDecl__Group_1__18689);
            rule__ConDecl__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__Group_1__1"


    // $ANTLR start "rule__ConDecl__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4103:1: rule__ConDecl__Group_1__1__Impl : ( ( rule__ConDecl__TyAssignment_1_1 ) ) ;
    public final void rule__ConDecl__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4107:1: ( ( ( rule__ConDecl__TyAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4108:1: ( ( rule__ConDecl__TyAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4108:1: ( ( rule__ConDecl__TyAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4109:1: ( rule__ConDecl__TyAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConDeclAccess().getTyAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4110:1: ( rule__ConDecl__TyAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4110:2: rule__ConDecl__TyAssignment_1_1
            {
            pushFollow(FOLLOW_rule__ConDecl__TyAssignment_1_1_in_rule__ConDecl__Group_1__1__Impl8716);
            rule__ConDecl__TyAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConDeclAccess().getTyAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__Group_1__1__Impl"


    // $ANTLR start "rule__Ty__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4124:1: rule__Ty__Group_1__0 : rule__Ty__Group_1__0__Impl rule__Ty__Group_1__1 ;
    public final void rule__Ty__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4128:1: ( rule__Ty__Group_1__0__Impl rule__Ty__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4129:2: rule__Ty__Group_1__0__Impl rule__Ty__Group_1__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_1__0__Impl_in_rule__Ty__Group_1__08750);
            rule__Ty__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_1__1_in_rule__Ty__Group_1__08753);
            rule__Ty__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_1__0"


    // $ANTLR start "rule__Ty__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4136:1: rule__Ty__Group_1__0__Impl : ( '|' ) ;
    public final void rule__Ty__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4140:1: ( ( '|' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4141:1: ( '|' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4141:1: ( '|' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4142:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getVerticalLineKeyword_1_0()); 
            }
            match(input,38,FOLLOW_38_in_rule__Ty__Group_1__0__Impl8781); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getVerticalLineKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_1__0__Impl"


    // $ANTLR start "rule__Ty__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4155:1: rule__Ty__Group_1__1 : rule__Ty__Group_1__1__Impl rule__Ty__Group_1__2 ;
    public final void rule__Ty__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4159:1: ( rule__Ty__Group_1__1__Impl rule__Ty__Group_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4160:2: rule__Ty__Group_1__1__Impl rule__Ty__Group_1__2
            {
            pushFollow(FOLLOW_rule__Ty__Group_1__1__Impl_in_rule__Ty__Group_1__18812);
            rule__Ty__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_1__2_in_rule__Ty__Group_1__18815);
            rule__Ty__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_1__1"


    // $ANTLR start "rule__Ty__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4167:1: rule__Ty__Group_1__1__Impl : ( ( rule__Ty__ValueAssignment_1_1 ) ) ;
    public final void rule__Ty__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4171:1: ( ( ( rule__Ty__ValueAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4172:1: ( ( rule__Ty__ValueAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4172:1: ( ( rule__Ty__ValueAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4173:1: ( rule__Ty__ValueAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getValueAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4174:1: ( rule__Ty__ValueAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4174:2: rule__Ty__ValueAssignment_1_1
            {
            pushFollow(FOLLOW_rule__Ty__ValueAssignment_1_1_in_rule__Ty__Group_1__1__Impl8842);
            rule__Ty__ValueAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getValueAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_1__1__Impl"


    // $ANTLR start "rule__Ty__Group_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4184:1: rule__Ty__Group_1__2 : rule__Ty__Group_1__2__Impl ;
    public final void rule__Ty__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4188:1: ( rule__Ty__Group_1__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4189:2: rule__Ty__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_1__2__Impl_in_rule__Ty__Group_1__28872);
            rule__Ty__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_1__2"


    // $ANTLR start "rule__Ty__Group_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4195:1: rule__Ty__Group_1__2__Impl : ( '|' ) ;
    public final void rule__Ty__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4199:1: ( ( '|' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4200:1: ( '|' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4200:1: ( '|' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4201:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getVerticalLineKeyword_1_2()); 
            }
            match(input,38,FOLLOW_38_in_rule__Ty__Group_1__2__Impl8900); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getVerticalLineKeyword_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_1__2__Impl"


    // $ANTLR start "rule__Ty__Group_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4220:1: rule__Ty__Group_2__0 : rule__Ty__Group_2__0__Impl rule__Ty__Group_2__1 ;
    public final void rule__Ty__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4224:1: ( rule__Ty__Group_2__0__Impl rule__Ty__Group_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4225:2: rule__Ty__Group_2__0__Impl rule__Ty__Group_2__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_2__0__Impl_in_rule__Ty__Group_2__08937);
            rule__Ty__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_2__1_in_rule__Ty__Group_2__08940);
            rule__Ty__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_2__0"


    // $ANTLR start "rule__Ty__Group_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4232:1: rule__Ty__Group_2__0__Impl : ( '|' ) ;
    public final void rule__Ty__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4236:1: ( ( '|' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4237:1: ( '|' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4237:1: ( '|' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4238:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getVerticalLineKeyword_2_0()); 
            }
            match(input,38,FOLLOW_38_in_rule__Ty__Group_2__0__Impl8968); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getVerticalLineKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_2__0__Impl"


    // $ANTLR start "rule__Ty__Group_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4251:1: rule__Ty__Group_2__1 : rule__Ty__Group_2__1__Impl rule__Ty__Group_2__2 ;
    public final void rule__Ty__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4255:1: ( rule__Ty__Group_2__1__Impl rule__Ty__Group_2__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4256:2: rule__Ty__Group_2__1__Impl rule__Ty__Group_2__2
            {
            pushFollow(FOLLOW_rule__Ty__Group_2__1__Impl_in_rule__Ty__Group_2__18999);
            rule__Ty__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_2__2_in_rule__Ty__Group_2__19002);
            rule__Ty__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_2__1"


    // $ANTLR start "rule__Ty__Group_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4263:1: rule__Ty__Group_2__1__Impl : ( ( rule__Ty__TypeRefAssignment_2_1 ) ) ;
    public final void rule__Ty__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4267:1: ( ( ( rule__Ty__TypeRefAssignment_2_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4268:1: ( ( rule__Ty__TypeRefAssignment_2_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4268:1: ( ( rule__Ty__TypeRefAssignment_2_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4269:1: ( rule__Ty__TypeRefAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTypeRefAssignment_2_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4270:1: ( rule__Ty__TypeRefAssignment_2_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4270:2: rule__Ty__TypeRefAssignment_2_1
            {
            pushFollow(FOLLOW_rule__Ty__TypeRefAssignment_2_1_in_rule__Ty__Group_2__1__Impl9029);
            rule__Ty__TypeRefAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTypeRefAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_2__1__Impl"


    // $ANTLR start "rule__Ty__Group_2__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4280:1: rule__Ty__Group_2__2 : rule__Ty__Group_2__2__Impl ;
    public final void rule__Ty__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4284:1: ( rule__Ty__Group_2__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4285:2: rule__Ty__Group_2__2__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_2__2__Impl_in_rule__Ty__Group_2__29059);
            rule__Ty__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_2__2"


    // $ANTLR start "rule__Ty__Group_2__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4291:1: rule__Ty__Group_2__2__Impl : ( '|' ) ;
    public final void rule__Ty__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4295:1: ( ( '|' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4296:1: ( '|' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4296:1: ( '|' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4297:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getVerticalLineKeyword_2_2()); 
            }
            match(input,38,FOLLOW_38_in_rule__Ty__Group_2__2__Impl9087); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getVerticalLineKeyword_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_2__2__Impl"


    // $ANTLR start "rule__Ty__Group_3__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4316:1: rule__Ty__Group_3__0 : rule__Ty__Group_3__0__Impl rule__Ty__Group_3__1 ;
    public final void rule__Ty__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4320:1: ( rule__Ty__Group_3__0__Impl rule__Ty__Group_3__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4321:2: rule__Ty__Group_3__0__Impl rule__Ty__Group_3__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_3__0__Impl_in_rule__Ty__Group_3__09124);
            rule__Ty__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_3__1_in_rule__Ty__Group_3__09127);
            rule__Ty__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3__0"


    // $ANTLR start "rule__Ty__Group_3__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4328:1: rule__Ty__Group_3__0__Impl : ( ( rule__Ty__Alternatives_3_0 ) ) ;
    public final void rule__Ty__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4332:1: ( ( ( rule__Ty__Alternatives_3_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4333:1: ( ( rule__Ty__Alternatives_3_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4333:1: ( ( rule__Ty__Alternatives_3_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4334:1: ( rule__Ty__Alternatives_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getAlternatives_3_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4335:1: ( rule__Ty__Alternatives_3_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4335:2: rule__Ty__Alternatives_3_0
            {
            pushFollow(FOLLOW_rule__Ty__Alternatives_3_0_in_rule__Ty__Group_3__0__Impl9154);
            rule__Ty__Alternatives_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getAlternatives_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3__0__Impl"


    // $ANTLR start "rule__Ty__Group_3__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4345:1: rule__Ty__Group_3__1 : rule__Ty__Group_3__1__Impl ;
    public final void rule__Ty__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4349:1: ( rule__Ty__Group_3__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4350:2: rule__Ty__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_3__1__Impl_in_rule__Ty__Group_3__19184);
            rule__Ty__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3__1"


    // $ANTLR start "rule__Ty__Group_3__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4356:1: rule__Ty__Group_3__1__Impl : ( ( rule__Ty__Group_3_1__0 )? ) ;
    public final void rule__Ty__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4360:1: ( ( ( rule__Ty__Group_3_1__0 )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4361:1: ( ( rule__Ty__Group_3_1__0 )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4361:1: ( ( rule__Ty__Group_3_1__0 )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4362:1: ( rule__Ty__Group_3_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getGroup_3_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4363:1: ( rule__Ty__Group_3_1__0 )?
            int alt68=2;
            int LA68_0 = input.LA(1);

            if ( (LA68_0==40) ) {
                alt68=1;
            }
            switch (alt68) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4363:2: rule__Ty__Group_3_1__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_3_1__0_in_rule__Ty__Group_3__1__Impl9211);
                    rule__Ty__Group_3_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getGroup_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3__1__Impl"


    // $ANTLR start "rule__Ty__Group_3_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4377:1: rule__Ty__Group_3_1__0 : rule__Ty__Group_3_1__0__Impl rule__Ty__Group_3_1__1 ;
    public final void rule__Ty__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4381:1: ( rule__Ty__Group_3_1__0__Impl rule__Ty__Group_3_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4382:2: rule__Ty__Group_3_1__0__Impl rule__Ty__Group_3_1__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_3_1__0__Impl_in_rule__Ty__Group_3_1__09246);
            rule__Ty__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_3_1__1_in_rule__Ty__Group_3_1__09249);
            rule__Ty__Group_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1__0"


    // $ANTLR start "rule__Ty__Group_3_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4389:1: rule__Ty__Group_3_1__0__Impl : ( '[' ) ;
    public final void rule__Ty__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4393:1: ( ( '[' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4394:1: ( '[' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4394:1: ( '[' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4395:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getLeftSquareBracketKeyword_3_1_0()); 
            }
            match(input,40,FOLLOW_40_in_rule__Ty__Group_3_1__0__Impl9277); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getLeftSquareBracketKeyword_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1__0__Impl"


    // $ANTLR start "rule__Ty__Group_3_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4408:1: rule__Ty__Group_3_1__1 : rule__Ty__Group_3_1__1__Impl rule__Ty__Group_3_1__2 ;
    public final void rule__Ty__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4412:1: ( rule__Ty__Group_3_1__1__Impl rule__Ty__Group_3_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4413:2: rule__Ty__Group_3_1__1__Impl rule__Ty__Group_3_1__2
            {
            pushFollow(FOLLOW_rule__Ty__Group_3_1__1__Impl_in_rule__Ty__Group_3_1__19308);
            rule__Ty__Group_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_3_1__2_in_rule__Ty__Group_3_1__19311);
            rule__Ty__Group_3_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1__1"


    // $ANTLR start "rule__Ty__Group_3_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4420:1: rule__Ty__Group_3_1__1__Impl : ( ( rule__Ty__TyBindAssignment_3_1_1 ) ) ;
    public final void rule__Ty__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4424:1: ( ( ( rule__Ty__TyBindAssignment_3_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4425:1: ( ( rule__Ty__TyBindAssignment_3_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4425:1: ( ( rule__Ty__TyBindAssignment_3_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4426:1: ( rule__Ty__TyBindAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTyBindAssignment_3_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4427:1: ( rule__Ty__TyBindAssignment_3_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4427:2: rule__Ty__TyBindAssignment_3_1_1
            {
            pushFollow(FOLLOW_rule__Ty__TyBindAssignment_3_1_1_in_rule__Ty__Group_3_1__1__Impl9338);
            rule__Ty__TyBindAssignment_3_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTyBindAssignment_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1__1__Impl"


    // $ANTLR start "rule__Ty__Group_3_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4437:1: rule__Ty__Group_3_1__2 : rule__Ty__Group_3_1__2__Impl rule__Ty__Group_3_1__3 ;
    public final void rule__Ty__Group_3_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4441:1: ( rule__Ty__Group_3_1__2__Impl rule__Ty__Group_3_1__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4442:2: rule__Ty__Group_3_1__2__Impl rule__Ty__Group_3_1__3
            {
            pushFollow(FOLLOW_rule__Ty__Group_3_1__2__Impl_in_rule__Ty__Group_3_1__29368);
            rule__Ty__Group_3_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_3_1__3_in_rule__Ty__Group_3_1__29371);
            rule__Ty__Group_3_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1__2"


    // $ANTLR start "rule__Ty__Group_3_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4449:1: rule__Ty__Group_3_1__2__Impl : ( ( rule__Ty__Group_3_1_2__0 )* ) ;
    public final void rule__Ty__Group_3_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4453:1: ( ( ( rule__Ty__Group_3_1_2__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4454:1: ( ( rule__Ty__Group_3_1_2__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4454:1: ( ( rule__Ty__Group_3_1_2__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4455:1: ( rule__Ty__Group_3_1_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getGroup_3_1_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4456:1: ( rule__Ty__Group_3_1_2__0 )*
            loop69:
            do {
                int alt69=2;
                int LA69_0 = input.LA(1);

                if ( (LA69_0==42) ) {
                    alt69=1;
                }


                switch (alt69) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4456:2: rule__Ty__Group_3_1_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Ty__Group_3_1_2__0_in_rule__Ty__Group_3_1__2__Impl9398);
            	    rule__Ty__Group_3_1_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop69;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getGroup_3_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1__2__Impl"


    // $ANTLR start "rule__Ty__Group_3_1__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4466:1: rule__Ty__Group_3_1__3 : rule__Ty__Group_3_1__3__Impl ;
    public final void rule__Ty__Group_3_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4470:1: ( rule__Ty__Group_3_1__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4471:2: rule__Ty__Group_3_1__3__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_3_1__3__Impl_in_rule__Ty__Group_3_1__39429);
            rule__Ty__Group_3_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1__3"


    // $ANTLR start "rule__Ty__Group_3_1__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4477:1: rule__Ty__Group_3_1__3__Impl : ( ']' ) ;
    public final void rule__Ty__Group_3_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4481:1: ( ( ']' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4482:1: ( ']' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4482:1: ( ']' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4483:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getRightSquareBracketKeyword_3_1_3()); 
            }
            match(input,41,FOLLOW_41_in_rule__Ty__Group_3_1__3__Impl9457); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getRightSquareBracketKeyword_3_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1__3__Impl"


    // $ANTLR start "rule__Ty__Group_3_1_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4504:1: rule__Ty__Group_3_1_2__0 : rule__Ty__Group_3_1_2__0__Impl rule__Ty__Group_3_1_2__1 ;
    public final void rule__Ty__Group_3_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4508:1: ( rule__Ty__Group_3_1_2__0__Impl rule__Ty__Group_3_1_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4509:2: rule__Ty__Group_3_1_2__0__Impl rule__Ty__Group_3_1_2__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_3_1_2__0__Impl_in_rule__Ty__Group_3_1_2__09496);
            rule__Ty__Group_3_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_3_1_2__1_in_rule__Ty__Group_3_1_2__09499);
            rule__Ty__Group_3_1_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1_2__0"


    // $ANTLR start "rule__Ty__Group_3_1_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4516:1: rule__Ty__Group_3_1_2__0__Impl : ( ',' ) ;
    public final void rule__Ty__Group_3_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4520:1: ( ( ',' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4521:1: ( ',' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4521:1: ( ',' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4522:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getCommaKeyword_3_1_2_0()); 
            }
            match(input,42,FOLLOW_42_in_rule__Ty__Group_3_1_2__0__Impl9527); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getCommaKeyword_3_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1_2__0__Impl"


    // $ANTLR start "rule__Ty__Group_3_1_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4535:1: rule__Ty__Group_3_1_2__1 : rule__Ty__Group_3_1_2__1__Impl ;
    public final void rule__Ty__Group_3_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4539:1: ( rule__Ty__Group_3_1_2__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4540:2: rule__Ty__Group_3_1_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_3_1_2__1__Impl_in_rule__Ty__Group_3_1_2__19558);
            rule__Ty__Group_3_1_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1_2__1"


    // $ANTLR start "rule__Ty__Group_3_1_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4546:1: rule__Ty__Group_3_1_2__1__Impl : ( ( rule__Ty__TyBindAssignment_3_1_2_1 ) ) ;
    public final void rule__Ty__Group_3_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4550:1: ( ( ( rule__Ty__TyBindAssignment_3_1_2_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4551:1: ( ( rule__Ty__TyBindAssignment_3_1_2_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4551:1: ( ( rule__Ty__TyBindAssignment_3_1_2_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4552:1: ( rule__Ty__TyBindAssignment_3_1_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTyBindAssignment_3_1_2_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4553:1: ( rule__Ty__TyBindAssignment_3_1_2_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4553:2: rule__Ty__TyBindAssignment_3_1_2_1
            {
            pushFollow(FOLLOW_rule__Ty__TyBindAssignment_3_1_2_1_in_rule__Ty__Group_3_1_2__1__Impl9585);
            rule__Ty__TyBindAssignment_3_1_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTyBindAssignment_3_1_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_3_1_2__1__Impl"


    // $ANTLR start "rule__Ty__Group_4__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4567:1: rule__Ty__Group_4__0 : rule__Ty__Group_4__0__Impl rule__Ty__Group_4__1 ;
    public final void rule__Ty__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4571:1: ( rule__Ty__Group_4__0__Impl rule__Ty__Group_4__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4572:2: rule__Ty__Group_4__0__Impl rule__Ty__Group_4__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_4__0__Impl_in_rule__Ty__Group_4__09619);
            rule__Ty__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_4__1_in_rule__Ty__Group_4__09622);
            rule__Ty__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4__0"


    // $ANTLR start "rule__Ty__Group_4__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4579:1: rule__Ty__Group_4__0__Impl : ( () ) ;
    public final void rule__Ty__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4583:1: ( ( () ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4584:1: ( () )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4584:1: ( () )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4585:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTyAction_4_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4586:1: ()
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4588:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTyAction_4_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4__0__Impl"


    // $ANTLR start "rule__Ty__Group_4__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4598:1: rule__Ty__Group_4__1 : rule__Ty__Group_4__1__Impl rule__Ty__Group_4__2 ;
    public final void rule__Ty__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4602:1: ( rule__Ty__Group_4__1__Impl rule__Ty__Group_4__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4603:2: rule__Ty__Group_4__1__Impl rule__Ty__Group_4__2
            {
            pushFollow(FOLLOW_rule__Ty__Group_4__1__Impl_in_rule__Ty__Group_4__19680);
            rule__Ty__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_4__2_in_rule__Ty__Group_4__19683);
            rule__Ty__Group_4__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4__1"


    // $ANTLR start "rule__Ty__Group_4__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4610:1: rule__Ty__Group_4__1__Impl : ( '{' ) ;
    public final void rule__Ty__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4614:1: ( ( '{' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4615:1: ( '{' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4615:1: ( '{' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4616:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getLeftCurlyBracketKeyword_4_1()); 
            }
            match(input,44,FOLLOW_44_in_rule__Ty__Group_4__1__Impl9711); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getLeftCurlyBracketKeyword_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4__1__Impl"


    // $ANTLR start "rule__Ty__Group_4__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4629:1: rule__Ty__Group_4__2 : rule__Ty__Group_4__2__Impl rule__Ty__Group_4__3 ;
    public final void rule__Ty__Group_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4633:1: ( rule__Ty__Group_4__2__Impl rule__Ty__Group_4__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4634:2: rule__Ty__Group_4__2__Impl rule__Ty__Group_4__3
            {
            pushFollow(FOLLOW_rule__Ty__Group_4__2__Impl_in_rule__Ty__Group_4__29742);
            rule__Ty__Group_4__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_4__3_in_rule__Ty__Group_4__29745);
            rule__Ty__Group_4__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4__2"


    // $ANTLR start "rule__Ty__Group_4__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4641:1: rule__Ty__Group_4__2__Impl : ( ( rule__Ty__Group_4_2__0 )? ) ;
    public final void rule__Ty__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4645:1: ( ( ( rule__Ty__Group_4_2__0 )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4646:1: ( ( rule__Ty__Group_4_2__0 )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4646:1: ( ( rule__Ty__Group_4_2__0 )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4647:1: ( rule__Ty__Group_4_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getGroup_4_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4648:1: ( rule__Ty__Group_4_2__0 )?
            int alt70=2;
            int LA70_0 = input.LA(1);

            if ( ((LA70_0>=RULE_ID && LA70_0<=RULE_S)) ) {
                alt70=1;
            }
            switch (alt70) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4648:2: rule__Ty__Group_4_2__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_4_2__0_in_rule__Ty__Group_4__2__Impl9772);
                    rule__Ty__Group_4_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getGroup_4_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4__2__Impl"


    // $ANTLR start "rule__Ty__Group_4__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4658:1: rule__Ty__Group_4__3 : rule__Ty__Group_4__3__Impl ;
    public final void rule__Ty__Group_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4662:1: ( rule__Ty__Group_4__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4663:2: rule__Ty__Group_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_4__3__Impl_in_rule__Ty__Group_4__39803);
            rule__Ty__Group_4__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4__3"


    // $ANTLR start "rule__Ty__Group_4__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4669:1: rule__Ty__Group_4__3__Impl : ( '}' ) ;
    public final void rule__Ty__Group_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4673:1: ( ( '}' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4674:1: ( '}' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4674:1: ( '}' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4675:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getRightCurlyBracketKeyword_4_3()); 
            }
            match(input,45,FOLLOW_45_in_rule__Ty__Group_4__3__Impl9831); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getRightCurlyBracketKeyword_4_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4__3__Impl"


    // $ANTLR start "rule__Ty__Group_4_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4696:1: rule__Ty__Group_4_2__0 : rule__Ty__Group_4_2__0__Impl rule__Ty__Group_4_2__1 ;
    public final void rule__Ty__Group_4_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4700:1: ( rule__Ty__Group_4_2__0__Impl rule__Ty__Group_4_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4701:2: rule__Ty__Group_4_2__0__Impl rule__Ty__Group_4_2__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_4_2__0__Impl_in_rule__Ty__Group_4_2__09870);
            rule__Ty__Group_4_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_4_2__1_in_rule__Ty__Group_4_2__09873);
            rule__Ty__Group_4_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4_2__0"


    // $ANTLR start "rule__Ty__Group_4_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4708:1: rule__Ty__Group_4_2__0__Impl : ( ( rule__Ty__ElementsAssignment_4_2_0 ) ) ;
    public final void rule__Ty__Group_4_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4712:1: ( ( ( rule__Ty__ElementsAssignment_4_2_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4713:1: ( ( rule__Ty__ElementsAssignment_4_2_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4713:1: ( ( rule__Ty__ElementsAssignment_4_2_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4714:1: ( rule__Ty__ElementsAssignment_4_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getElementsAssignment_4_2_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4715:1: ( rule__Ty__ElementsAssignment_4_2_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4715:2: rule__Ty__ElementsAssignment_4_2_0
            {
            pushFollow(FOLLOW_rule__Ty__ElementsAssignment_4_2_0_in_rule__Ty__Group_4_2__0__Impl9900);
            rule__Ty__ElementsAssignment_4_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getElementsAssignment_4_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4_2__0__Impl"


    // $ANTLR start "rule__Ty__Group_4_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4725:1: rule__Ty__Group_4_2__1 : rule__Ty__Group_4_2__1__Impl ;
    public final void rule__Ty__Group_4_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4729:1: ( rule__Ty__Group_4_2__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4730:2: rule__Ty__Group_4_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_4_2__1__Impl_in_rule__Ty__Group_4_2__19930);
            rule__Ty__Group_4_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4_2__1"


    // $ANTLR start "rule__Ty__Group_4_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4736:1: rule__Ty__Group_4_2__1__Impl : ( ( rule__Ty__Group_4_2_1__0 )* ) ;
    public final void rule__Ty__Group_4_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4740:1: ( ( ( rule__Ty__Group_4_2_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4741:1: ( ( rule__Ty__Group_4_2_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4741:1: ( ( rule__Ty__Group_4_2_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4742:1: ( rule__Ty__Group_4_2_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getGroup_4_2_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4743:1: ( rule__Ty__Group_4_2_1__0 )*
            loop71:
            do {
                int alt71=2;
                int LA71_0 = input.LA(1);

                if ( (LA71_0==42) ) {
                    alt71=1;
                }


                switch (alt71) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4743:2: rule__Ty__Group_4_2_1__0
            	    {
            	    pushFollow(FOLLOW_rule__Ty__Group_4_2_1__0_in_rule__Ty__Group_4_2__1__Impl9957);
            	    rule__Ty__Group_4_2_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop71;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getGroup_4_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4_2__1__Impl"


    // $ANTLR start "rule__Ty__Group_4_2_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4757:1: rule__Ty__Group_4_2_1__0 : rule__Ty__Group_4_2_1__0__Impl rule__Ty__Group_4_2_1__1 ;
    public final void rule__Ty__Group_4_2_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4761:1: ( rule__Ty__Group_4_2_1__0__Impl rule__Ty__Group_4_2_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4762:2: rule__Ty__Group_4_2_1__0__Impl rule__Ty__Group_4_2_1__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_4_2_1__0__Impl_in_rule__Ty__Group_4_2_1__09992);
            rule__Ty__Group_4_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_4_2_1__1_in_rule__Ty__Group_4_2_1__09995);
            rule__Ty__Group_4_2_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4_2_1__0"


    // $ANTLR start "rule__Ty__Group_4_2_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4769:1: rule__Ty__Group_4_2_1__0__Impl : ( ',' ) ;
    public final void rule__Ty__Group_4_2_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4773:1: ( ( ',' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4774:1: ( ',' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4774:1: ( ',' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4775:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getCommaKeyword_4_2_1_0()); 
            }
            match(input,42,FOLLOW_42_in_rule__Ty__Group_4_2_1__0__Impl10023); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getCommaKeyword_4_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4_2_1__0__Impl"


    // $ANTLR start "rule__Ty__Group_4_2_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4788:1: rule__Ty__Group_4_2_1__1 : rule__Ty__Group_4_2_1__1__Impl ;
    public final void rule__Ty__Group_4_2_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4792:1: ( rule__Ty__Group_4_2_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4793:2: rule__Ty__Group_4_2_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_4_2_1__1__Impl_in_rule__Ty__Group_4_2_1__110054);
            rule__Ty__Group_4_2_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4_2_1__1"


    // $ANTLR start "rule__Ty__Group_4_2_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4799:1: rule__Ty__Group_4_2_1__1__Impl : ( ( rule__Ty__ElementsAssignment_4_2_1_1 ) ) ;
    public final void rule__Ty__Group_4_2_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4803:1: ( ( ( rule__Ty__ElementsAssignment_4_2_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4804:1: ( ( rule__Ty__ElementsAssignment_4_2_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4804:1: ( ( rule__Ty__ElementsAssignment_4_2_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4805:1: ( rule__Ty__ElementsAssignment_4_2_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getElementsAssignment_4_2_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4806:1: ( rule__Ty__ElementsAssignment_4_2_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4806:2: rule__Ty__ElementsAssignment_4_2_1_1
            {
            pushFollow(FOLLOW_rule__Ty__ElementsAssignment_4_2_1_1_in_rule__Ty__Group_4_2_1__1__Impl10081);
            rule__Ty__ElementsAssignment_4_2_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getElementsAssignment_4_2_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_4_2_1__1__Impl"


    // $ANTLR start "rule__Ty__Group_5__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4820:1: rule__Ty__Group_5__0 : rule__Ty__Group_5__0__Impl rule__Ty__Group_5__1 ;
    public final void rule__Ty__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4824:1: ( rule__Ty__Group_5__0__Impl rule__Ty__Group_5__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4825:2: rule__Ty__Group_5__0__Impl rule__Ty__Group_5__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_5__0__Impl_in_rule__Ty__Group_5__010115);
            rule__Ty__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_5__1_in_rule__Ty__Group_5__010118);
            rule__Ty__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__0"


    // $ANTLR start "rule__Ty__Group_5__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4832:1: rule__Ty__Group_5__0__Impl : ( '(' ) ;
    public final void rule__Ty__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4836:1: ( ( '(' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4837:1: ( '(' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4837:1: ( '(' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4838:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getLeftParenthesisKeyword_5_0()); 
            }
            match(input,46,FOLLOW_46_in_rule__Ty__Group_5__0__Impl10146); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getLeftParenthesisKeyword_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__0__Impl"


    // $ANTLR start "rule__Ty__Group_5__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4851:1: rule__Ty__Group_5__1 : rule__Ty__Group_5__1__Impl rule__Ty__Group_5__2 ;
    public final void rule__Ty__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4855:1: ( rule__Ty__Group_5__1__Impl rule__Ty__Group_5__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4856:2: rule__Ty__Group_5__1__Impl rule__Ty__Group_5__2
            {
            pushFollow(FOLLOW_rule__Ty__Group_5__1__Impl_in_rule__Ty__Group_5__110177);
            rule__Ty__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_5__2_in_rule__Ty__Group_5__110180);
            rule__Ty__Group_5__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__1"


    // $ANTLR start "rule__Ty__Group_5__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4863:1: rule__Ty__Group_5__1__Impl : ( ( rule__Ty__ParamAssignment_5_1 ) ) ;
    public final void rule__Ty__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4867:1: ( ( ( rule__Ty__ParamAssignment_5_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4868:1: ( ( rule__Ty__ParamAssignment_5_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4868:1: ( ( rule__Ty__ParamAssignment_5_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4869:1: ( rule__Ty__ParamAssignment_5_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getParamAssignment_5_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4870:1: ( rule__Ty__ParamAssignment_5_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4870:2: rule__Ty__ParamAssignment_5_1
            {
            pushFollow(FOLLOW_rule__Ty__ParamAssignment_5_1_in_rule__Ty__Group_5__1__Impl10207);
            rule__Ty__ParamAssignment_5_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getParamAssignment_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__1__Impl"


    // $ANTLR start "rule__Ty__Group_5__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4880:1: rule__Ty__Group_5__2 : rule__Ty__Group_5__2__Impl rule__Ty__Group_5__3 ;
    public final void rule__Ty__Group_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4884:1: ( rule__Ty__Group_5__2__Impl rule__Ty__Group_5__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4885:2: rule__Ty__Group_5__2__Impl rule__Ty__Group_5__3
            {
            pushFollow(FOLLOW_rule__Ty__Group_5__2__Impl_in_rule__Ty__Group_5__210237);
            rule__Ty__Group_5__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_5__3_in_rule__Ty__Group_5__210240);
            rule__Ty__Group_5__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__2"


    // $ANTLR start "rule__Ty__Group_5__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4892:1: rule__Ty__Group_5__2__Impl : ( ( rule__Ty__Group_5_2__0 )* ) ;
    public final void rule__Ty__Group_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4896:1: ( ( ( rule__Ty__Group_5_2__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4897:1: ( ( rule__Ty__Group_5_2__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4897:1: ( ( rule__Ty__Group_5_2__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4898:1: ( rule__Ty__Group_5_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getGroup_5_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4899:1: ( rule__Ty__Group_5_2__0 )*
            loop72:
            do {
                int alt72=2;
                int LA72_0 = input.LA(1);

                if ( (LA72_0==42) ) {
                    alt72=1;
                }


                switch (alt72) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4899:2: rule__Ty__Group_5_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Ty__Group_5_2__0_in_rule__Ty__Group_5__2__Impl10267);
            	    rule__Ty__Group_5_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop72;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getGroup_5_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__2__Impl"


    // $ANTLR start "rule__Ty__Group_5__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4909:1: rule__Ty__Group_5__3 : rule__Ty__Group_5__3__Impl rule__Ty__Group_5__4 ;
    public final void rule__Ty__Group_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4913:1: ( rule__Ty__Group_5__3__Impl rule__Ty__Group_5__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4914:2: rule__Ty__Group_5__3__Impl rule__Ty__Group_5__4
            {
            pushFollow(FOLLOW_rule__Ty__Group_5__3__Impl_in_rule__Ty__Group_5__310298);
            rule__Ty__Group_5__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_5__4_in_rule__Ty__Group_5__310301);
            rule__Ty__Group_5__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__3"


    // $ANTLR start "rule__Ty__Group_5__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4921:1: rule__Ty__Group_5__3__Impl : ( ')' ) ;
    public final void rule__Ty__Group_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4925:1: ( ( ')' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4926:1: ( ')' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4926:1: ( ')' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4927:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getRightParenthesisKeyword_5_3()); 
            }
            match(input,47,FOLLOW_47_in_rule__Ty__Group_5__3__Impl10329); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getRightParenthesisKeyword_5_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__3__Impl"


    // $ANTLR start "rule__Ty__Group_5__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4940:1: rule__Ty__Group_5__4 : rule__Ty__Group_5__4__Impl rule__Ty__Group_5__5 ;
    public final void rule__Ty__Group_5__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4944:1: ( rule__Ty__Group_5__4__Impl rule__Ty__Group_5__5 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4945:2: rule__Ty__Group_5__4__Impl rule__Ty__Group_5__5
            {
            pushFollow(FOLLOW_rule__Ty__Group_5__4__Impl_in_rule__Ty__Group_5__410360);
            rule__Ty__Group_5__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_5__5_in_rule__Ty__Group_5__410363);
            rule__Ty__Group_5__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__4"


    // $ANTLR start "rule__Ty__Group_5__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4952:1: rule__Ty__Group_5__4__Impl : ( '->' ) ;
    public final void rule__Ty__Group_5__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4956:1: ( ( '->' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4957:1: ( '->' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4957:1: ( '->' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4958:1: '->'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getHyphenMinusGreaterThanSignKeyword_5_4()); 
            }
            match(input,48,FOLLOW_48_in_rule__Ty__Group_5__4__Impl10391); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getHyphenMinusGreaterThanSignKeyword_5_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__4__Impl"


    // $ANTLR start "rule__Ty__Group_5__5"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4971:1: rule__Ty__Group_5__5 : rule__Ty__Group_5__5__Impl ;
    public final void rule__Ty__Group_5__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4975:1: ( rule__Ty__Group_5__5__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4976:2: rule__Ty__Group_5__5__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_5__5__Impl_in_rule__Ty__Group_5__510422);
            rule__Ty__Group_5__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__5"


    // $ANTLR start "rule__Ty__Group_5__5__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4982:1: rule__Ty__Group_5__5__Impl : ( ( rule__Ty__ResTypeAssignment_5_5 ) ) ;
    public final void rule__Ty__Group_5__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4986:1: ( ( ( rule__Ty__ResTypeAssignment_5_5 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4987:1: ( ( rule__Ty__ResTypeAssignment_5_5 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4987:1: ( ( rule__Ty__ResTypeAssignment_5_5 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4988:1: ( rule__Ty__ResTypeAssignment_5_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getResTypeAssignment_5_5()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4989:1: ( rule__Ty__ResTypeAssignment_5_5 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:4989:2: rule__Ty__ResTypeAssignment_5_5
            {
            pushFollow(FOLLOW_rule__Ty__ResTypeAssignment_5_5_in_rule__Ty__Group_5__5__Impl10449);
            rule__Ty__ResTypeAssignment_5_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getResTypeAssignment_5_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5__5__Impl"


    // $ANTLR start "rule__Ty__Group_5_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5011:1: rule__Ty__Group_5_2__0 : rule__Ty__Group_5_2__0__Impl rule__Ty__Group_5_2__1 ;
    public final void rule__Ty__Group_5_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5015:1: ( rule__Ty__Group_5_2__0__Impl rule__Ty__Group_5_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5016:2: rule__Ty__Group_5_2__0__Impl rule__Ty__Group_5_2__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_5_2__0__Impl_in_rule__Ty__Group_5_2__010491);
            rule__Ty__Group_5_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_5_2__1_in_rule__Ty__Group_5_2__010494);
            rule__Ty__Group_5_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5_2__0"


    // $ANTLR start "rule__Ty__Group_5_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5023:1: rule__Ty__Group_5_2__0__Impl : ( ',' ) ;
    public final void rule__Ty__Group_5_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5027:1: ( ( ',' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5028:1: ( ',' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5028:1: ( ',' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5029:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getCommaKeyword_5_2_0()); 
            }
            match(input,42,FOLLOW_42_in_rule__Ty__Group_5_2__0__Impl10522); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getCommaKeyword_5_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5_2__0__Impl"


    // $ANTLR start "rule__Ty__Group_5_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5042:1: rule__Ty__Group_5_2__1 : rule__Ty__Group_5_2__1__Impl ;
    public final void rule__Ty__Group_5_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5046:1: ( rule__Ty__Group_5_2__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5047:2: rule__Ty__Group_5_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_5_2__1__Impl_in_rule__Ty__Group_5_2__110553);
            rule__Ty__Group_5_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5_2__1"


    // $ANTLR start "rule__Ty__Group_5_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5053:1: rule__Ty__Group_5_2__1__Impl : ( ( rule__Ty__ParamAssignment_5_2_1 ) ) ;
    public final void rule__Ty__Group_5_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5057:1: ( ( ( rule__Ty__ParamAssignment_5_2_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5058:1: ( ( rule__Ty__ParamAssignment_5_2_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5058:1: ( ( rule__Ty__ParamAssignment_5_2_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5059:1: ( rule__Ty__ParamAssignment_5_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getParamAssignment_5_2_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5060:1: ( rule__Ty__ParamAssignment_5_2_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5060:2: rule__Ty__ParamAssignment_5_2_1
            {
            pushFollow(FOLLOW_rule__Ty__ParamAssignment_5_2_1_in_rule__Ty__Group_5_2__1__Impl10580);
            rule__Ty__ParamAssignment_5_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getParamAssignment_5_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_5_2__1__Impl"


    // $ANTLR start "rule__Ty__Group_6__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5074:1: rule__Ty__Group_6__0 : rule__Ty__Group_6__0__Impl rule__Ty__Group_6__1 ;
    public final void rule__Ty__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5078:1: ( rule__Ty__Group_6__0__Impl rule__Ty__Group_6__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5079:2: rule__Ty__Group_6__0__Impl rule__Ty__Group_6__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_6__0__Impl_in_rule__Ty__Group_6__010614);
            rule__Ty__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_6__1_in_rule__Ty__Group_6__010617);
            rule__Ty__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6__0"


    // $ANTLR start "rule__Ty__Group_6__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5086:1: rule__Ty__Group_6__0__Impl : ( () ) ;
    public final void rule__Ty__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5090:1: ( ( () ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5091:1: ( () )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5091:1: ( () )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5092:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTyAction_6_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5093:1: ()
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5095:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTyAction_6_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6__0__Impl"


    // $ANTLR start "rule__Ty__Group_6__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5105:1: rule__Ty__Group_6__1 : rule__Ty__Group_6__1__Impl rule__Ty__Group_6__2 ;
    public final void rule__Ty__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5109:1: ( rule__Ty__Group_6__1__Impl rule__Ty__Group_6__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5110:2: rule__Ty__Group_6__1__Impl rule__Ty__Group_6__2
            {
            pushFollow(FOLLOW_rule__Ty__Group_6__1__Impl_in_rule__Ty__Group_6__110675);
            rule__Ty__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_6__2_in_rule__Ty__Group_6__110678);
            rule__Ty__Group_6__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6__1"


    // $ANTLR start "rule__Ty__Group_6__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5117:1: rule__Ty__Group_6__1__Impl : ( '()' ) ;
    public final void rule__Ty__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5121:1: ( ( '()' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5122:1: ( '()' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5122:1: ( '()' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5123:1: '()'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getLeftParenthesisRightParenthesisKeyword_6_1()); 
            }
            match(input,32,FOLLOW_32_in_rule__Ty__Group_6__1__Impl10706); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getLeftParenthesisRightParenthesisKeyword_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6__1__Impl"


    // $ANTLR start "rule__Ty__Group_6__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5136:1: rule__Ty__Group_6__2 : rule__Ty__Group_6__2__Impl ;
    public final void rule__Ty__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5140:1: ( rule__Ty__Group_6__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5141:2: rule__Ty__Group_6__2__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_6__2__Impl_in_rule__Ty__Group_6__210737);
            rule__Ty__Group_6__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6__2"


    // $ANTLR start "rule__Ty__Group_6__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5147:1: rule__Ty__Group_6__2__Impl : ( ( rule__Ty__Group_6_2__0 )? ) ;
    public final void rule__Ty__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5151:1: ( ( ( rule__Ty__Group_6_2__0 )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5152:1: ( ( rule__Ty__Group_6_2__0 )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5152:1: ( ( rule__Ty__Group_6_2__0 )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5153:1: ( rule__Ty__Group_6_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getGroup_6_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5154:1: ( rule__Ty__Group_6_2__0 )?
            int alt73=2;
            int LA73_0 = input.LA(1);

            if ( (LA73_0==48) ) {
                alt73=1;
            }
            switch (alt73) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5154:2: rule__Ty__Group_6_2__0
                    {
                    pushFollow(FOLLOW_rule__Ty__Group_6_2__0_in_rule__Ty__Group_6__2__Impl10764);
                    rule__Ty__Group_6_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getGroup_6_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6__2__Impl"


    // $ANTLR start "rule__Ty__Group_6_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5170:1: rule__Ty__Group_6_2__0 : rule__Ty__Group_6_2__0__Impl rule__Ty__Group_6_2__1 ;
    public final void rule__Ty__Group_6_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5174:1: ( rule__Ty__Group_6_2__0__Impl rule__Ty__Group_6_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5175:2: rule__Ty__Group_6_2__0__Impl rule__Ty__Group_6_2__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_6_2__0__Impl_in_rule__Ty__Group_6_2__010801);
            rule__Ty__Group_6_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_6_2__1_in_rule__Ty__Group_6_2__010804);
            rule__Ty__Group_6_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6_2__0"


    // $ANTLR start "rule__Ty__Group_6_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5182:1: rule__Ty__Group_6_2__0__Impl : ( '->' ) ;
    public final void rule__Ty__Group_6_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5186:1: ( ( '->' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5187:1: ( '->' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5187:1: ( '->' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5188:1: '->'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getHyphenMinusGreaterThanSignKeyword_6_2_0()); 
            }
            match(input,48,FOLLOW_48_in_rule__Ty__Group_6_2__0__Impl10832); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getHyphenMinusGreaterThanSignKeyword_6_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6_2__0__Impl"


    // $ANTLR start "rule__Ty__Group_6_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5201:1: rule__Ty__Group_6_2__1 : rule__Ty__Group_6_2__1__Impl ;
    public final void rule__Ty__Group_6_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5205:1: ( rule__Ty__Group_6_2__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5206:2: rule__Ty__Group_6_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_6_2__1__Impl_in_rule__Ty__Group_6_2__110863);
            rule__Ty__Group_6_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6_2__1"


    // $ANTLR start "rule__Ty__Group_6_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5212:1: rule__Ty__Group_6_2__1__Impl : ( ( rule__Ty__ResTypeAssignment_6_2_1 ) ) ;
    public final void rule__Ty__Group_6_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5216:1: ( ( ( rule__Ty__ResTypeAssignment_6_2_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5217:1: ( ( rule__Ty__ResTypeAssignment_6_2_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5217:1: ( ( rule__Ty__ResTypeAssignment_6_2_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5218:1: ( rule__Ty__ResTypeAssignment_6_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getResTypeAssignment_6_2_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5219:1: ( rule__Ty__ResTypeAssignment_6_2_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5219:2: rule__Ty__ResTypeAssignment_6_2_1
            {
            pushFollow(FOLLOW_rule__Ty__ResTypeAssignment_6_2_1_in_rule__Ty__Group_6_2__1__Impl10890);
            rule__Ty__ResTypeAssignment_6_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getResTypeAssignment_6_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_6_2__1__Impl"


    // $ANTLR start "rule__Ty__Group_7__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5233:1: rule__Ty__Group_7__0 : rule__Ty__Group_7__0__Impl rule__Ty__Group_7__1 ;
    public final void rule__Ty__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5237:1: ( rule__Ty__Group_7__0__Impl rule__Ty__Group_7__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5238:2: rule__Ty__Group_7__0__Impl rule__Ty__Group_7__1
            {
            pushFollow(FOLLOW_rule__Ty__Group_7__0__Impl_in_rule__Ty__Group_7__010924);
            rule__Ty__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_7__1_in_rule__Ty__Group_7__010927);
            rule__Ty__Group_7__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__0"


    // $ANTLR start "rule__Ty__Group_7__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5245:1: rule__Ty__Group_7__0__Impl : ( RULE_S ) ;
    public final void rule__Ty__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5249:1: ( ( RULE_S ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5250:1: ( RULE_S )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5250:1: ( RULE_S )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5251:1: RULE_S
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getSTerminalRuleCall_7_0()); 
            }
            match(input,RULE_S,FOLLOW_RULE_S_in_rule__Ty__Group_7__0__Impl10954); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getSTerminalRuleCall_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__0__Impl"


    // $ANTLR start "rule__Ty__Group_7__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5262:1: rule__Ty__Group_7__1 : rule__Ty__Group_7__1__Impl rule__Ty__Group_7__2 ;
    public final void rule__Ty__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5266:1: ( rule__Ty__Group_7__1__Impl rule__Ty__Group_7__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5267:2: rule__Ty__Group_7__1__Impl rule__Ty__Group_7__2
            {
            pushFollow(FOLLOW_rule__Ty__Group_7__1__Impl_in_rule__Ty__Group_7__110983);
            rule__Ty__Group_7__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_7__2_in_rule__Ty__Group_7__110986);
            rule__Ty__Group_7__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__1"


    // $ANTLR start "rule__Ty__Group_7__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5274:1: rule__Ty__Group_7__1__Impl : ( ( rule__Ty__RAssignment_7_1 ) ) ;
    public final void rule__Ty__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5278:1: ( ( ( rule__Ty__RAssignment_7_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5279:1: ( ( rule__Ty__RAssignment_7_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5279:1: ( ( rule__Ty__RAssignment_7_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5280:1: ( rule__Ty__RAssignment_7_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getRAssignment_7_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5281:1: ( rule__Ty__RAssignment_7_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5281:2: rule__Ty__RAssignment_7_1
            {
            pushFollow(FOLLOW_rule__Ty__RAssignment_7_1_in_rule__Ty__Group_7__1__Impl11013);
            rule__Ty__RAssignment_7_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getRAssignment_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__1__Impl"


    // $ANTLR start "rule__Ty__Group_7__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5291:1: rule__Ty__Group_7__2 : rule__Ty__Group_7__2__Impl rule__Ty__Group_7__3 ;
    public final void rule__Ty__Group_7__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5295:1: ( rule__Ty__Group_7__2__Impl rule__Ty__Group_7__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5296:2: rule__Ty__Group_7__2__Impl rule__Ty__Group_7__3
            {
            pushFollow(FOLLOW_rule__Ty__Group_7__2__Impl_in_rule__Ty__Group_7__211043);
            rule__Ty__Group_7__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_7__3_in_rule__Ty__Group_7__211046);
            rule__Ty__Group_7__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__2"


    // $ANTLR start "rule__Ty__Group_7__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5303:1: rule__Ty__Group_7__2__Impl : ( RULE_LESS ) ;
    public final void rule__Ty__Group_7__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5307:1: ( ( RULE_LESS ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5308:1: ( RULE_LESS )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5308:1: ( RULE_LESS )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5309:1: RULE_LESS
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getLESSTerminalRuleCall_7_2()); 
            }
            match(input,RULE_LESS,FOLLOW_RULE_LESS_in_rule__Ty__Group_7__2__Impl11073); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getLESSTerminalRuleCall_7_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__2__Impl"


    // $ANTLR start "rule__Ty__Group_7__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5320:1: rule__Ty__Group_7__3 : rule__Ty__Group_7__3__Impl rule__Ty__Group_7__4 ;
    public final void rule__Ty__Group_7__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5324:1: ( rule__Ty__Group_7__3__Impl rule__Ty__Group_7__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5325:2: rule__Ty__Group_7__3__Impl rule__Ty__Group_7__4
            {
            pushFollow(FOLLOW_rule__Ty__Group_7__3__Impl_in_rule__Ty__Group_7__311102);
            rule__Ty__Group_7__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_7__4_in_rule__Ty__Group_7__311105);
            rule__Ty__Group_7__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__3"


    // $ANTLR start "rule__Ty__Group_7__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5332:1: rule__Ty__Group_7__3__Impl : ( ( rule__Ty__InAssignment_7_3 ) ) ;
    public final void rule__Ty__Group_7__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5336:1: ( ( ( rule__Ty__InAssignment_7_3 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5337:1: ( ( rule__Ty__InAssignment_7_3 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5337:1: ( ( rule__Ty__InAssignment_7_3 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5338:1: ( rule__Ty__InAssignment_7_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getInAssignment_7_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5339:1: ( rule__Ty__InAssignment_7_3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5339:2: rule__Ty__InAssignment_7_3
            {
            pushFollow(FOLLOW_rule__Ty__InAssignment_7_3_in_rule__Ty__Group_7__3__Impl11132);
            rule__Ty__InAssignment_7_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getInAssignment_7_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__3__Impl"


    // $ANTLR start "rule__Ty__Group_7__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5349:1: rule__Ty__Group_7__4 : rule__Ty__Group_7__4__Impl rule__Ty__Group_7__5 ;
    public final void rule__Ty__Group_7__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5353:1: ( rule__Ty__Group_7__4__Impl rule__Ty__Group_7__5 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5354:2: rule__Ty__Group_7__4__Impl rule__Ty__Group_7__5
            {
            pushFollow(FOLLOW_rule__Ty__Group_7__4__Impl_in_rule__Ty__Group_7__411162);
            rule__Ty__Group_7__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_7__5_in_rule__Ty__Group_7__411165);
            rule__Ty__Group_7__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__4"


    // $ANTLR start "rule__Ty__Group_7__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5361:1: rule__Ty__Group_7__4__Impl : ( '=>' ) ;
    public final void rule__Ty__Group_7__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5365:1: ( ( '=>' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5366:1: ( '=>' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5366:1: ( '=>' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5367:1: '=>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getEqualsSignGreaterThanSignKeyword_7_4()); 
            }
            match(input,49,FOLLOW_49_in_rule__Ty__Group_7__4__Impl11193); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getEqualsSignGreaterThanSignKeyword_7_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__4__Impl"


    // $ANTLR start "rule__Ty__Group_7__5"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5380:1: rule__Ty__Group_7__5 : rule__Ty__Group_7__5__Impl rule__Ty__Group_7__6 ;
    public final void rule__Ty__Group_7__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5384:1: ( rule__Ty__Group_7__5__Impl rule__Ty__Group_7__6 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5385:2: rule__Ty__Group_7__5__Impl rule__Ty__Group_7__6
            {
            pushFollow(FOLLOW_rule__Ty__Group_7__5__Impl_in_rule__Ty__Group_7__511224);
            rule__Ty__Group_7__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Ty__Group_7__6_in_rule__Ty__Group_7__511227);
            rule__Ty__Group_7__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__5"


    // $ANTLR start "rule__Ty__Group_7__5__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5392:1: rule__Ty__Group_7__5__Impl : ( ( rule__Ty__OutAssignment_7_5 ) ) ;
    public final void rule__Ty__Group_7__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5396:1: ( ( ( rule__Ty__OutAssignment_7_5 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5397:1: ( ( rule__Ty__OutAssignment_7_5 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5397:1: ( ( rule__Ty__OutAssignment_7_5 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5398:1: ( rule__Ty__OutAssignment_7_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getOutAssignment_7_5()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5399:1: ( rule__Ty__OutAssignment_7_5 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5399:2: rule__Ty__OutAssignment_7_5
            {
            pushFollow(FOLLOW_rule__Ty__OutAssignment_7_5_in_rule__Ty__Group_7__5__Impl11254);
            rule__Ty__OutAssignment_7_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getOutAssignment_7_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__5__Impl"


    // $ANTLR start "rule__Ty__Group_7__6"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5409:1: rule__Ty__Group_7__6 : rule__Ty__Group_7__6__Impl ;
    public final void rule__Ty__Group_7__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5413:1: ( rule__Ty__Group_7__6__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5414:2: rule__Ty__Group_7__6__Impl
            {
            pushFollow(FOLLOW_rule__Ty__Group_7__6__Impl_in_rule__Ty__Group_7__611284);
            rule__Ty__Group_7__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__6"


    // $ANTLR start "rule__Ty__Group_7__6__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5420:1: rule__Ty__Group_7__6__Impl : ( RULE_GREATER ) ;
    public final void rule__Ty__Group_7__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5424:1: ( ( RULE_GREATER ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5425:1: ( RULE_GREATER )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5425:1: ( RULE_GREATER )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5426:1: RULE_GREATER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getGREATERTerminalRuleCall_7_6()); 
            }
            match(input,RULE_GREATER,FOLLOW_RULE_GREATER_in_rule__Ty__Group_7__6__Impl11311); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getGREATERTerminalRuleCall_7_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__Group_7__6__Impl"


    // $ANTLR start "rule__TyBind__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5451:1: rule__TyBind__Group__0 : rule__TyBind__Group__0__Impl rule__TyBind__Group__1 ;
    public final void rule__TyBind__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5455:1: ( rule__TyBind__Group__0__Impl rule__TyBind__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5456:2: rule__TyBind__Group__0__Impl rule__TyBind__Group__1
            {
            pushFollow(FOLLOW_rule__TyBind__Group__0__Impl_in_rule__TyBind__Group__011354);
            rule__TyBind__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TyBind__Group__1_in_rule__TyBind__Group__011357);
            rule__TyBind__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__Group__0"


    // $ANTLR start "rule__TyBind__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5463:1: rule__TyBind__Group__0__Impl : ( ( rule__TyBind__NameAssignment_0 ) ) ;
    public final void rule__TyBind__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5467:1: ( ( ( rule__TyBind__NameAssignment_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5468:1: ( ( rule__TyBind__NameAssignment_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5468:1: ( ( rule__TyBind__NameAssignment_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5469:1: ( rule__TyBind__NameAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyBindAccess().getNameAssignment_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5470:1: ( rule__TyBind__NameAssignment_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5470:2: rule__TyBind__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__TyBind__NameAssignment_0_in_rule__TyBind__Group__0__Impl11384);
            rule__TyBind__NameAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyBindAccess().getNameAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__Group__0__Impl"


    // $ANTLR start "rule__TyBind__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5480:1: rule__TyBind__Group__1 : rule__TyBind__Group__1__Impl ;
    public final void rule__TyBind__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5484:1: ( rule__TyBind__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5485:2: rule__TyBind__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__TyBind__Group__1__Impl_in_rule__TyBind__Group__111414);
            rule__TyBind__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__Group__1"


    // $ANTLR start "rule__TyBind__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5491:1: rule__TyBind__Group__1__Impl : ( ( rule__TyBind__Group_1__0 )? ) ;
    public final void rule__TyBind__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5495:1: ( ( ( rule__TyBind__Group_1__0 )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5496:1: ( ( rule__TyBind__Group_1__0 )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5496:1: ( ( rule__TyBind__Group_1__0 )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5497:1: ( rule__TyBind__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyBindAccess().getGroup_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5498:1: ( rule__TyBind__Group_1__0 )?
            int alt74=2;
            int LA74_0 = input.LA(1);

            if ( (LA74_0==37) ) {
                alt74=1;
            }
            switch (alt74) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5498:2: rule__TyBind__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__TyBind__Group_1__0_in_rule__TyBind__Group__1__Impl11441);
                    rule__TyBind__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyBindAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__Group__1__Impl"


    // $ANTLR start "rule__TyBind__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5512:1: rule__TyBind__Group_1__0 : rule__TyBind__Group_1__0__Impl rule__TyBind__Group_1__1 ;
    public final void rule__TyBind__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5516:1: ( rule__TyBind__Group_1__0__Impl rule__TyBind__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5517:2: rule__TyBind__Group_1__0__Impl rule__TyBind__Group_1__1
            {
            pushFollow(FOLLOW_rule__TyBind__Group_1__0__Impl_in_rule__TyBind__Group_1__011476);
            rule__TyBind__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TyBind__Group_1__1_in_rule__TyBind__Group_1__011479);
            rule__TyBind__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__Group_1__0"


    // $ANTLR start "rule__TyBind__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5524:1: rule__TyBind__Group_1__0__Impl : ( '=' ) ;
    public final void rule__TyBind__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5528:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5529:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5529:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5530:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyBindAccess().getEqualsSignKeyword_1_0()); 
            }
            match(input,37,FOLLOW_37_in_rule__TyBind__Group_1__0__Impl11507); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyBindAccess().getEqualsSignKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__Group_1__0__Impl"


    // $ANTLR start "rule__TyBind__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5543:1: rule__TyBind__Group_1__1 : rule__TyBind__Group_1__1__Impl ;
    public final void rule__TyBind__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5547:1: ( rule__TyBind__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5548:2: rule__TyBind__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__TyBind__Group_1__1__Impl_in_rule__TyBind__Group_1__111538);
            rule__TyBind__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__Group_1__1"


    // $ANTLR start "rule__TyBind__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5554:1: rule__TyBind__Group_1__1__Impl : ( ( rule__TyBind__ValueAssignment_1_1 ) ) ;
    public final void rule__TyBind__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5558:1: ( ( ( rule__TyBind__ValueAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5559:1: ( ( rule__TyBind__ValueAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5559:1: ( ( rule__TyBind__ValueAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5560:1: ( rule__TyBind__ValueAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyBindAccess().getValueAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5561:1: ( rule__TyBind__ValueAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5561:2: rule__TyBind__ValueAssignment_1_1
            {
            pushFollow(FOLLOW_rule__TyBind__ValueAssignment_1_1_in_rule__TyBind__Group_1__1__Impl11565);
            rule__TyBind__ValueAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyBindAccess().getValueAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__Group_1__1__Impl"


    // $ANTLR start "rule__TyElement__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5575:1: rule__TyElement__Group__0 : rule__TyElement__Group__0__Impl rule__TyElement__Group__1 ;
    public final void rule__TyElement__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5579:1: ( rule__TyElement__Group__0__Impl rule__TyElement__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5580:2: rule__TyElement__Group__0__Impl rule__TyElement__Group__1
            {
            pushFollow(FOLLOW_rule__TyElement__Group__0__Impl_in_rule__TyElement__Group__011599);
            rule__TyElement__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TyElement__Group__1_in_rule__TyElement__Group__011602);
            rule__TyElement__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyElement__Group__0"


    // $ANTLR start "rule__TyElement__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5587:1: rule__TyElement__Group__0__Impl : ( ( rule__TyElement__NameAssignment_0 ) ) ;
    public final void rule__TyElement__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5591:1: ( ( ( rule__TyElement__NameAssignment_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5592:1: ( ( rule__TyElement__NameAssignment_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5592:1: ( ( rule__TyElement__NameAssignment_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5593:1: ( rule__TyElement__NameAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyElementAccess().getNameAssignment_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5594:1: ( rule__TyElement__NameAssignment_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5594:2: rule__TyElement__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__TyElement__NameAssignment_0_in_rule__TyElement__Group__0__Impl11629);
            rule__TyElement__NameAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyElementAccess().getNameAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyElement__Group__0__Impl"


    // $ANTLR start "rule__TyElement__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5604:1: rule__TyElement__Group__1 : rule__TyElement__Group__1__Impl rule__TyElement__Group__2 ;
    public final void rule__TyElement__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5608:1: ( rule__TyElement__Group__1__Impl rule__TyElement__Group__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5609:2: rule__TyElement__Group__1__Impl rule__TyElement__Group__2
            {
            pushFollow(FOLLOW_rule__TyElement__Group__1__Impl_in_rule__TyElement__Group__111659);
            rule__TyElement__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TyElement__Group__2_in_rule__TyElement__Group__111662);
            rule__TyElement__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyElement__Group__1"


    // $ANTLR start "rule__TyElement__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5616:1: rule__TyElement__Group__1__Impl : ( ':' ) ;
    public final void rule__TyElement__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5620:1: ( ( ':' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5621:1: ( ':' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5621:1: ( ':' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5622:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyElementAccess().getColonKeyword_1()); 
            }
            match(input,35,FOLLOW_35_in_rule__TyElement__Group__1__Impl11690); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyElementAccess().getColonKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyElement__Group__1__Impl"


    // $ANTLR start "rule__TyElement__Group__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5635:1: rule__TyElement__Group__2 : rule__TyElement__Group__2__Impl ;
    public final void rule__TyElement__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5639:1: ( rule__TyElement__Group__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5640:2: rule__TyElement__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__TyElement__Group__2__Impl_in_rule__TyElement__Group__211721);
            rule__TyElement__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyElement__Group__2"


    // $ANTLR start "rule__TyElement__Group__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5646:1: rule__TyElement__Group__2__Impl : ( ( rule__TyElement__ValueAssignment_2 ) ) ;
    public final void rule__TyElement__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5650:1: ( ( ( rule__TyElement__ValueAssignment_2 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5651:1: ( ( rule__TyElement__ValueAssignment_2 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5651:1: ( ( rule__TyElement__ValueAssignment_2 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5652:1: ( rule__TyElement__ValueAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyElementAccess().getValueAssignment_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5653:1: ( rule__TyElement__ValueAssignment_2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5653:2: rule__TyElement__ValueAssignment_2
            {
            pushFollow(FOLLOW_rule__TyElement__ValueAssignment_2_in_rule__TyElement__Group__2__Impl11748);
            rule__TyElement__ValueAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyElementAccess().getValueAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyElement__Group__2__Impl"


    // $ANTLR start "rule__Exp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5669:1: rule__Exp__Group_1__0 : rule__Exp__Group_1__0__Impl rule__Exp__Group_1__1 ;
    public final void rule__Exp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5673:1: ( rule__Exp__Group_1__0__Impl rule__Exp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5674:2: rule__Exp__Group_1__0__Impl rule__Exp__Group_1__1
            {
            pushFollow(FOLLOW_rule__Exp__Group_1__0__Impl_in_rule__Exp__Group_1__011784);
            rule__Exp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exp__Group_1__1_in_rule__Exp__Group_1__011787);
            rule__Exp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exp__Group_1__0"


    // $ANTLR start "rule__Exp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5681:1: rule__Exp__Group_1__0__Impl : ( ( rule__Exp__MidAssignment_1_0 ) ) ;
    public final void rule__Exp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5685:1: ( ( ( rule__Exp__MidAssignment_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5686:1: ( ( rule__Exp__MidAssignment_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5686:1: ( ( rule__Exp__MidAssignment_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5687:1: ( rule__Exp__MidAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExpAccess().getMidAssignment_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5688:1: ( rule__Exp__MidAssignment_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5688:2: rule__Exp__MidAssignment_1_0
            {
            pushFollow(FOLLOW_rule__Exp__MidAssignment_1_0_in_rule__Exp__Group_1__0__Impl11814);
            rule__Exp__MidAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExpAccess().getMidAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exp__Group_1__0__Impl"


    // $ANTLR start "rule__Exp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5698:1: rule__Exp__Group_1__1 : rule__Exp__Group_1__1__Impl ;
    public final void rule__Exp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5702:1: ( rule__Exp__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5703:2: rule__Exp__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Exp__Group_1__1__Impl_in_rule__Exp__Group_1__111844);
            rule__Exp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exp__Group_1__1"


    // $ANTLR start "rule__Exp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5709:1: rule__Exp__Group_1__1__Impl : ( ( rule__Exp__CaseExpsAssignment_1_1 ) ) ;
    public final void rule__Exp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5713:1: ( ( ( rule__Exp__CaseExpsAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5714:1: ( ( rule__Exp__CaseExpsAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5714:1: ( ( rule__Exp__CaseExpsAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5715:1: ( rule__Exp__CaseExpsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExpAccess().getCaseExpsAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5716:1: ( rule__Exp__CaseExpsAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5716:2: rule__Exp__CaseExpsAssignment_1_1
            {
            pushFollow(FOLLOW_rule__Exp__CaseExpsAssignment_1_1_in_rule__Exp__Group_1__1__Impl11871);
            rule__Exp__CaseExpsAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExpAccess().getCaseExpsAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exp__Group_1__1__Impl"


    // $ANTLR start "rule__CaseExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5730:1: rule__CaseExp__Group_1__0 : rule__CaseExp__Group_1__0__Impl rule__CaseExp__Group_1__1 ;
    public final void rule__CaseExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5734:1: ( rule__CaseExp__Group_1__0__Impl rule__CaseExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5735:2: rule__CaseExp__Group_1__0__Impl rule__CaseExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1__0__Impl_in_rule__CaseExp__Group_1__011905);
            rule__CaseExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1__1_in_rule__CaseExp__Group_1__011908);
            rule__CaseExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__0"


    // $ANTLR start "rule__CaseExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5742:1: rule__CaseExp__Group_1__0__Impl : ( ( rule__CaseExp__NameAssignment_1_0 ) ) ;
    public final void rule__CaseExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5746:1: ( ( ( rule__CaseExp__NameAssignment_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5747:1: ( ( rule__CaseExp__NameAssignment_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5747:1: ( ( rule__CaseExp__NameAssignment_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5748:1: ( rule__CaseExp__NameAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getNameAssignment_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5749:1: ( rule__CaseExp__NameAssignment_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5749:2: rule__CaseExp__NameAssignment_1_0
            {
            pushFollow(FOLLOW_rule__CaseExp__NameAssignment_1_0_in_rule__CaseExp__Group_1__0__Impl11935);
            rule__CaseExp__NameAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getNameAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__0__Impl"


    // $ANTLR start "rule__CaseExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5759:1: rule__CaseExp__Group_1__1 : rule__CaseExp__Group_1__1__Impl rule__CaseExp__Group_1__2 ;
    public final void rule__CaseExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5763:1: ( rule__CaseExp__Group_1__1__Impl rule__CaseExp__Group_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5764:2: rule__CaseExp__Group_1__1__Impl rule__CaseExp__Group_1__2
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1__1__Impl_in_rule__CaseExp__Group_1__111965);
            rule__CaseExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1__2_in_rule__CaseExp__Group_1__111968);
            rule__CaseExp__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__1"


    // $ANTLR start "rule__CaseExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5771:1: rule__CaseExp__Group_1__1__Impl : ( ( rule__CaseExp__ClosedExpAssignment_1_1 ) ) ;
    public final void rule__CaseExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5775:1: ( ( ( rule__CaseExp__ClosedExpAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5776:1: ( ( rule__CaseExp__ClosedExpAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5776:1: ( ( rule__CaseExp__ClosedExpAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5777:1: ( rule__CaseExp__ClosedExpAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getClosedExpAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5778:1: ( rule__CaseExp__ClosedExpAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5778:2: rule__CaseExp__ClosedExpAssignment_1_1
            {
            pushFollow(FOLLOW_rule__CaseExp__ClosedExpAssignment_1_1_in_rule__CaseExp__Group_1__1__Impl11995);
            rule__CaseExp__ClosedExpAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getClosedExpAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__1__Impl"


    // $ANTLR start "rule__CaseExp__Group_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5788:1: rule__CaseExp__Group_1__2 : rule__CaseExp__Group_1__2__Impl rule__CaseExp__Group_1__3 ;
    public final void rule__CaseExp__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5792:1: ( rule__CaseExp__Group_1__2__Impl rule__CaseExp__Group_1__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5793:2: rule__CaseExp__Group_1__2__Impl rule__CaseExp__Group_1__3
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1__2__Impl_in_rule__CaseExp__Group_1__212025);
            rule__CaseExp__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1__3_in_rule__CaseExp__Group_1__212028);
            rule__CaseExp__Group_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__2"


    // $ANTLR start "rule__CaseExp__Group_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5800:1: rule__CaseExp__Group_1__2__Impl : ( 'of' ) ;
    public final void rule__CaseExp__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5804:1: ( ( 'of' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5805:1: ( 'of' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5805:1: ( 'of' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5806:1: 'of'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getOfKeyword_1_2()); 
            }
            match(input,43,FOLLOW_43_in_rule__CaseExp__Group_1__2__Impl12056); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getOfKeyword_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__2__Impl"


    // $ANTLR start "rule__CaseExp__Group_1__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5819:1: rule__CaseExp__Group_1__3 : rule__CaseExp__Group_1__3__Impl rule__CaseExp__Group_1__4 ;
    public final void rule__CaseExp__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5823:1: ( rule__CaseExp__Group_1__3__Impl rule__CaseExp__Group_1__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5824:2: rule__CaseExp__Group_1__3__Impl rule__CaseExp__Group_1__4
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1__3__Impl_in_rule__CaseExp__Group_1__312087);
            rule__CaseExp__Group_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1__4_in_rule__CaseExp__Group_1__312090);
            rule__CaseExp__Group_1__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__3"


    // $ANTLR start "rule__CaseExp__Group_1__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5831:1: rule__CaseExp__Group_1__3__Impl : ( ( rule__CaseExp__Group_1_3__0 ) ) ;
    public final void rule__CaseExp__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5835:1: ( ( ( rule__CaseExp__Group_1_3__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5836:1: ( ( rule__CaseExp__Group_1_3__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5836:1: ( ( rule__CaseExp__Group_1_3__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5837:1: ( rule__CaseExp__Group_1_3__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getGroup_1_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5838:1: ( rule__CaseExp__Group_1_3__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5838:2: rule__CaseExp__Group_1_3__0
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3__0_in_rule__CaseExp__Group_1__3__Impl12117);
            rule__CaseExp__Group_1_3__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getGroup_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__3__Impl"


    // $ANTLR start "rule__CaseExp__Group_1__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5848:1: rule__CaseExp__Group_1__4 : rule__CaseExp__Group_1__4__Impl ;
    public final void rule__CaseExp__Group_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5852:1: ( rule__CaseExp__Group_1__4__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5853:2: rule__CaseExp__Group_1__4__Impl
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1__4__Impl_in_rule__CaseExp__Group_1__412147);
            rule__CaseExp__Group_1__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__4"


    // $ANTLR start "rule__CaseExp__Group_1__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5859:1: rule__CaseExp__Group_1__4__Impl : ( 'end' ) ;
    public final void rule__CaseExp__Group_1__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5863:1: ( ( 'end' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5864:1: ( 'end' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5864:1: ( 'end' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5865:1: 'end'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getEndKeyword_1_4()); 
            }
            match(input,50,FOLLOW_50_in_rule__CaseExp__Group_1__4__Impl12175); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getEndKeyword_1_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1__4__Impl"


    // $ANTLR start "rule__CaseExp__Group_1_3__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5888:1: rule__CaseExp__Group_1_3__0 : rule__CaseExp__Group_1_3__0__Impl rule__CaseExp__Group_1_3__1 ;
    public final void rule__CaseExp__Group_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5892:1: ( rule__CaseExp__Group_1_3__0__Impl rule__CaseExp__Group_1_3__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5893:2: rule__CaseExp__Group_1_3__0__Impl rule__CaseExp__Group_1_3__1
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3__0__Impl_in_rule__CaseExp__Group_1_3__012216);
            rule__CaseExp__Group_1_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3__1_in_rule__CaseExp__Group_1_3__012219);
            rule__CaseExp__Group_1_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3__0"


    // $ANTLR start "rule__CaseExp__Group_1_3__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5900:1: rule__CaseExp__Group_1_3__0__Impl : ( ( rule__CaseExp__PatAssignment_1_3_0 ) ) ;
    public final void rule__CaseExp__Group_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5904:1: ( ( ( rule__CaseExp__PatAssignment_1_3_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5905:1: ( ( rule__CaseExp__PatAssignment_1_3_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5905:1: ( ( rule__CaseExp__PatAssignment_1_3_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5906:1: ( rule__CaseExp__PatAssignment_1_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getPatAssignment_1_3_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5907:1: ( rule__CaseExp__PatAssignment_1_3_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5907:2: rule__CaseExp__PatAssignment_1_3_0
            {
            pushFollow(FOLLOW_rule__CaseExp__PatAssignment_1_3_0_in_rule__CaseExp__Group_1_3__0__Impl12246);
            rule__CaseExp__PatAssignment_1_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getPatAssignment_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3__0__Impl"


    // $ANTLR start "rule__CaseExp__Group_1_3__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5917:1: rule__CaseExp__Group_1_3__1 : rule__CaseExp__Group_1_3__1__Impl rule__CaseExp__Group_1_3__2 ;
    public final void rule__CaseExp__Group_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5921:1: ( rule__CaseExp__Group_1_3__1__Impl rule__CaseExp__Group_1_3__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5922:2: rule__CaseExp__Group_1_3__1__Impl rule__CaseExp__Group_1_3__2
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3__1__Impl_in_rule__CaseExp__Group_1_3__112276);
            rule__CaseExp__Group_1_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3__2_in_rule__CaseExp__Group_1_3__112279);
            rule__CaseExp__Group_1_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3__1"


    // $ANTLR start "rule__CaseExp__Group_1_3__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5929:1: rule__CaseExp__Group_1_3__1__Impl : ( ':' ) ;
    public final void rule__CaseExp__Group_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5933:1: ( ( ':' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5934:1: ( ':' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5934:1: ( ':' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5935:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getColonKeyword_1_3_1()); 
            }
            match(input,35,FOLLOW_35_in_rule__CaseExp__Group_1_3__1__Impl12307); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getColonKeyword_1_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3__1__Impl"


    // $ANTLR start "rule__CaseExp__Group_1_3__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5948:1: rule__CaseExp__Group_1_3__2 : rule__CaseExp__Group_1_3__2__Impl rule__CaseExp__Group_1_3__3 ;
    public final void rule__CaseExp__Group_1_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5952:1: ( rule__CaseExp__Group_1_3__2__Impl rule__CaseExp__Group_1_3__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5953:2: rule__CaseExp__Group_1_3__2__Impl rule__CaseExp__Group_1_3__3
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3__2__Impl_in_rule__CaseExp__Group_1_3__212338);
            rule__CaseExp__Group_1_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3__3_in_rule__CaseExp__Group_1_3__212341);
            rule__CaseExp__Group_1_3__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3__2"


    // $ANTLR start "rule__CaseExp__Group_1_3__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5960:1: rule__CaseExp__Group_1_3__2__Impl : ( ( rule__CaseExp__ExpAssignment_1_3_2 ) ) ;
    public final void rule__CaseExp__Group_1_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5964:1: ( ( ( rule__CaseExp__ExpAssignment_1_3_2 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5965:1: ( ( rule__CaseExp__ExpAssignment_1_3_2 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5965:1: ( ( rule__CaseExp__ExpAssignment_1_3_2 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5966:1: ( rule__CaseExp__ExpAssignment_1_3_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getExpAssignment_1_3_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5967:1: ( rule__CaseExp__ExpAssignment_1_3_2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5967:2: rule__CaseExp__ExpAssignment_1_3_2
            {
            pushFollow(FOLLOW_rule__CaseExp__ExpAssignment_1_3_2_in_rule__CaseExp__Group_1_3__2__Impl12368);
            rule__CaseExp__ExpAssignment_1_3_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getExpAssignment_1_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3__2__Impl"


    // $ANTLR start "rule__CaseExp__Group_1_3__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5977:1: rule__CaseExp__Group_1_3__3 : rule__CaseExp__Group_1_3__3__Impl ;
    public final void rule__CaseExp__Group_1_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5981:1: ( rule__CaseExp__Group_1_3__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5982:2: rule__CaseExp__Group_1_3__3__Impl
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3__3__Impl_in_rule__CaseExp__Group_1_3__312398);
            rule__CaseExp__Group_1_3__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3__3"


    // $ANTLR start "rule__CaseExp__Group_1_3__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5988:1: rule__CaseExp__Group_1_3__3__Impl : ( ( rule__CaseExp__Group_1_3_3__0 )* ) ;
    public final void rule__CaseExp__Group_1_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5992:1: ( ( ( rule__CaseExp__Group_1_3_3__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5993:1: ( ( rule__CaseExp__Group_1_3_3__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5993:1: ( ( rule__CaseExp__Group_1_3_3__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5994:1: ( rule__CaseExp__Group_1_3_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getGroup_1_3_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5995:1: ( rule__CaseExp__Group_1_3_3__0 )*
            loop75:
            do {
                int alt75=2;
                int LA75_0 = input.LA(1);

                if ( (LA75_0==38) ) {
                    alt75=1;
                }


                switch (alt75) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:5995:2: rule__CaseExp__Group_1_3_3__0
            	    {
            	    pushFollow(FOLLOW_rule__CaseExp__Group_1_3_3__0_in_rule__CaseExp__Group_1_3__3__Impl12425);
            	    rule__CaseExp__Group_1_3_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop75;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getGroup_1_3_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3__3__Impl"


    // $ANTLR start "rule__CaseExp__Group_1_3_3__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6013:1: rule__CaseExp__Group_1_3_3__0 : rule__CaseExp__Group_1_3_3__0__Impl rule__CaseExp__Group_1_3_3__1 ;
    public final void rule__CaseExp__Group_1_3_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6017:1: ( rule__CaseExp__Group_1_3_3__0__Impl rule__CaseExp__Group_1_3_3__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6018:2: rule__CaseExp__Group_1_3_3__0__Impl rule__CaseExp__Group_1_3_3__1
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3_3__0__Impl_in_rule__CaseExp__Group_1_3_3__012464);
            rule__CaseExp__Group_1_3_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3_3__1_in_rule__CaseExp__Group_1_3_3__012467);
            rule__CaseExp__Group_1_3_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3_3__0"


    // $ANTLR start "rule__CaseExp__Group_1_3_3__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6025:1: rule__CaseExp__Group_1_3_3__0__Impl : ( '|' ) ;
    public final void rule__CaseExp__Group_1_3_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6029:1: ( ( '|' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6030:1: ( '|' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6030:1: ( '|' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6031:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getVerticalLineKeyword_1_3_3_0()); 
            }
            match(input,38,FOLLOW_38_in_rule__CaseExp__Group_1_3_3__0__Impl12495); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getVerticalLineKeyword_1_3_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3_3__0__Impl"


    // $ANTLR start "rule__CaseExp__Group_1_3_3__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6044:1: rule__CaseExp__Group_1_3_3__1 : rule__CaseExp__Group_1_3_3__1__Impl rule__CaseExp__Group_1_3_3__2 ;
    public final void rule__CaseExp__Group_1_3_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6048:1: ( rule__CaseExp__Group_1_3_3__1__Impl rule__CaseExp__Group_1_3_3__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6049:2: rule__CaseExp__Group_1_3_3__1__Impl rule__CaseExp__Group_1_3_3__2
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3_3__1__Impl_in_rule__CaseExp__Group_1_3_3__112526);
            rule__CaseExp__Group_1_3_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3_3__2_in_rule__CaseExp__Group_1_3_3__112529);
            rule__CaseExp__Group_1_3_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3_3__1"


    // $ANTLR start "rule__CaseExp__Group_1_3_3__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6056:1: rule__CaseExp__Group_1_3_3__1__Impl : ( ( rule__CaseExp__PatAssignment_1_3_3_1 ) ) ;
    public final void rule__CaseExp__Group_1_3_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6060:1: ( ( ( rule__CaseExp__PatAssignment_1_3_3_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6061:1: ( ( rule__CaseExp__PatAssignment_1_3_3_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6061:1: ( ( rule__CaseExp__PatAssignment_1_3_3_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6062:1: ( rule__CaseExp__PatAssignment_1_3_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getPatAssignment_1_3_3_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6063:1: ( rule__CaseExp__PatAssignment_1_3_3_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6063:2: rule__CaseExp__PatAssignment_1_3_3_1
            {
            pushFollow(FOLLOW_rule__CaseExp__PatAssignment_1_3_3_1_in_rule__CaseExp__Group_1_3_3__1__Impl12556);
            rule__CaseExp__PatAssignment_1_3_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getPatAssignment_1_3_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3_3__1__Impl"


    // $ANTLR start "rule__CaseExp__Group_1_3_3__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6073:1: rule__CaseExp__Group_1_3_3__2 : rule__CaseExp__Group_1_3_3__2__Impl rule__CaseExp__Group_1_3_3__3 ;
    public final void rule__CaseExp__Group_1_3_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6077:1: ( rule__CaseExp__Group_1_3_3__2__Impl rule__CaseExp__Group_1_3_3__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6078:2: rule__CaseExp__Group_1_3_3__2__Impl rule__CaseExp__Group_1_3_3__3
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3_3__2__Impl_in_rule__CaseExp__Group_1_3_3__212586);
            rule__CaseExp__Group_1_3_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3_3__3_in_rule__CaseExp__Group_1_3_3__212589);
            rule__CaseExp__Group_1_3_3__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3_3__2"


    // $ANTLR start "rule__CaseExp__Group_1_3_3__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6085:1: rule__CaseExp__Group_1_3_3__2__Impl : ( ':' ) ;
    public final void rule__CaseExp__Group_1_3_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6089:1: ( ( ':' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6090:1: ( ':' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6090:1: ( ':' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6091:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getColonKeyword_1_3_3_2()); 
            }
            match(input,35,FOLLOW_35_in_rule__CaseExp__Group_1_3_3__2__Impl12617); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getColonKeyword_1_3_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3_3__2__Impl"


    // $ANTLR start "rule__CaseExp__Group_1_3_3__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6104:1: rule__CaseExp__Group_1_3_3__3 : rule__CaseExp__Group_1_3_3__3__Impl ;
    public final void rule__CaseExp__Group_1_3_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6108:1: ( rule__CaseExp__Group_1_3_3__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6109:2: rule__CaseExp__Group_1_3_3__3__Impl
            {
            pushFollow(FOLLOW_rule__CaseExp__Group_1_3_3__3__Impl_in_rule__CaseExp__Group_1_3_3__312648);
            rule__CaseExp__Group_1_3_3__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3_3__3"


    // $ANTLR start "rule__CaseExp__Group_1_3_3__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6115:1: rule__CaseExp__Group_1_3_3__3__Impl : ( ( rule__CaseExp__ExpAssignment_1_3_3_3 ) ) ;
    public final void rule__CaseExp__Group_1_3_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6119:1: ( ( ( rule__CaseExp__ExpAssignment_1_3_3_3 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6120:1: ( ( rule__CaseExp__ExpAssignment_1_3_3_3 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6120:1: ( ( rule__CaseExp__ExpAssignment_1_3_3_3 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6121:1: ( rule__CaseExp__ExpAssignment_1_3_3_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getExpAssignment_1_3_3_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6122:1: ( rule__CaseExp__ExpAssignment_1_3_3_3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6122:2: rule__CaseExp__ExpAssignment_1_3_3_3
            {
            pushFollow(FOLLOW_rule__CaseExp__ExpAssignment_1_3_3_3_in_rule__CaseExp__Group_1_3_3__3__Impl12675);
            rule__CaseExp__ExpAssignment_1_3_3_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getExpAssignment_1_3_3_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__Group_1_3_3__3__Impl"


    // $ANTLR start "rule__ClosedExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6140:1: rule__ClosedExp__Group_1__0 : rule__ClosedExp__Group_1__0__Impl rule__ClosedExp__Group_1__1 ;
    public final void rule__ClosedExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6144:1: ( rule__ClosedExp__Group_1__0__Impl rule__ClosedExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6145:2: rule__ClosedExp__Group_1__0__Impl rule__ClosedExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__0__Impl_in_rule__ClosedExp__Group_1__012713);
            rule__ClosedExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__1_in_rule__ClosedExp__Group_1__012716);
            rule__ClosedExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__0"


    // $ANTLR start "rule__ClosedExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6152:1: rule__ClosedExp__Group_1__0__Impl : ( ( rule__ClosedExp__NameAssignment_1_0 ) ) ;
    public final void rule__ClosedExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6156:1: ( ( ( rule__ClosedExp__NameAssignment_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6157:1: ( ( rule__ClosedExp__NameAssignment_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6157:1: ( ( rule__ClosedExp__NameAssignment_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6158:1: ( rule__ClosedExp__NameAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getNameAssignment_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6159:1: ( rule__ClosedExp__NameAssignment_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6159:2: rule__ClosedExp__NameAssignment_1_0
            {
            pushFollow(FOLLOW_rule__ClosedExp__NameAssignment_1_0_in_rule__ClosedExp__Group_1__0__Impl12743);
            rule__ClosedExp__NameAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getNameAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__0__Impl"


    // $ANTLR start "rule__ClosedExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6169:1: rule__ClosedExp__Group_1__1 : rule__ClosedExp__Group_1__1__Impl rule__ClosedExp__Group_1__2 ;
    public final void rule__ClosedExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6173:1: ( rule__ClosedExp__Group_1__1__Impl rule__ClosedExp__Group_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6174:2: rule__ClosedExp__Group_1__1__Impl rule__ClosedExp__Group_1__2
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__1__Impl_in_rule__ClosedExp__Group_1__112773);
            rule__ClosedExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__2_in_rule__ClosedExp__Group_1__112776);
            rule__ClosedExp__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__1"


    // $ANTLR start "rule__ClosedExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6181:1: rule__ClosedExp__Group_1__1__Impl : ( ( rule__ClosedExp__IfCaseExpAssignment_1_1 ) ) ;
    public final void rule__ClosedExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6185:1: ( ( ( rule__ClosedExp__IfCaseExpAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6186:1: ( ( rule__ClosedExp__IfCaseExpAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6186:1: ( ( rule__ClosedExp__IfCaseExpAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6187:1: ( rule__ClosedExp__IfCaseExpAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getIfCaseExpAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6188:1: ( rule__ClosedExp__IfCaseExpAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6188:2: rule__ClosedExp__IfCaseExpAssignment_1_1
            {
            pushFollow(FOLLOW_rule__ClosedExp__IfCaseExpAssignment_1_1_in_rule__ClosedExp__Group_1__1__Impl12803);
            rule__ClosedExp__IfCaseExpAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getIfCaseExpAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__1__Impl"


    // $ANTLR start "rule__ClosedExp__Group_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6198:1: rule__ClosedExp__Group_1__2 : rule__ClosedExp__Group_1__2__Impl rule__ClosedExp__Group_1__3 ;
    public final void rule__ClosedExp__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6202:1: ( rule__ClosedExp__Group_1__2__Impl rule__ClosedExp__Group_1__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6203:2: rule__ClosedExp__Group_1__2__Impl rule__ClosedExp__Group_1__3
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__2__Impl_in_rule__ClosedExp__Group_1__212833);
            rule__ClosedExp__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__3_in_rule__ClosedExp__Group_1__212836);
            rule__ClosedExp__Group_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__2"


    // $ANTLR start "rule__ClosedExp__Group_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6210:1: rule__ClosedExp__Group_1__2__Impl : ( 'then' ) ;
    public final void rule__ClosedExp__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6214:1: ( ( 'then' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6215:1: ( 'then' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6215:1: ( 'then' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6216:1: 'then'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getThenKeyword_1_2()); 
            }
            match(input,51,FOLLOW_51_in_rule__ClosedExp__Group_1__2__Impl12864); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getThenKeyword_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__2__Impl"


    // $ANTLR start "rule__ClosedExp__Group_1__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6229:1: rule__ClosedExp__Group_1__3 : rule__ClosedExp__Group_1__3__Impl rule__ClosedExp__Group_1__4 ;
    public final void rule__ClosedExp__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6233:1: ( rule__ClosedExp__Group_1__3__Impl rule__ClosedExp__Group_1__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6234:2: rule__ClosedExp__Group_1__3__Impl rule__ClosedExp__Group_1__4
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__3__Impl_in_rule__ClosedExp__Group_1__312895);
            rule__ClosedExp__Group_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__4_in_rule__ClosedExp__Group_1__312898);
            rule__ClosedExp__Group_1__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__3"


    // $ANTLR start "rule__ClosedExp__Group_1__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6241:1: rule__ClosedExp__Group_1__3__Impl : ( ( rule__ClosedExp__ThenCaseExpAssignment_1_3 ) ) ;
    public final void rule__ClosedExp__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6245:1: ( ( ( rule__ClosedExp__ThenCaseExpAssignment_1_3 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6246:1: ( ( rule__ClosedExp__ThenCaseExpAssignment_1_3 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6246:1: ( ( rule__ClosedExp__ThenCaseExpAssignment_1_3 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6247:1: ( rule__ClosedExp__ThenCaseExpAssignment_1_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getThenCaseExpAssignment_1_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6248:1: ( rule__ClosedExp__ThenCaseExpAssignment_1_3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6248:2: rule__ClosedExp__ThenCaseExpAssignment_1_3
            {
            pushFollow(FOLLOW_rule__ClosedExp__ThenCaseExpAssignment_1_3_in_rule__ClosedExp__Group_1__3__Impl12925);
            rule__ClosedExp__ThenCaseExpAssignment_1_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getThenCaseExpAssignment_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__3__Impl"


    // $ANTLR start "rule__ClosedExp__Group_1__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6258:1: rule__ClosedExp__Group_1__4 : rule__ClosedExp__Group_1__4__Impl rule__ClosedExp__Group_1__5 ;
    public final void rule__ClosedExp__Group_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6262:1: ( rule__ClosedExp__Group_1__4__Impl rule__ClosedExp__Group_1__5 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6263:2: rule__ClosedExp__Group_1__4__Impl rule__ClosedExp__Group_1__5
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__4__Impl_in_rule__ClosedExp__Group_1__412955);
            rule__ClosedExp__Group_1__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__5_in_rule__ClosedExp__Group_1__412958);
            rule__ClosedExp__Group_1__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__4"


    // $ANTLR start "rule__ClosedExp__Group_1__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6270:1: rule__ClosedExp__Group_1__4__Impl : ( 'else' ) ;
    public final void rule__ClosedExp__Group_1__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6274:1: ( ( 'else' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6275:1: ( 'else' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6275:1: ( 'else' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6276:1: 'else'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getElseKeyword_1_4()); 
            }
            match(input,52,FOLLOW_52_in_rule__ClosedExp__Group_1__4__Impl12986); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getElseKeyword_1_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__4__Impl"


    // $ANTLR start "rule__ClosedExp__Group_1__5"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6289:1: rule__ClosedExp__Group_1__5 : rule__ClosedExp__Group_1__5__Impl ;
    public final void rule__ClosedExp__Group_1__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6293:1: ( rule__ClosedExp__Group_1__5__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6294:2: rule__ClosedExp__Group_1__5__Impl
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_1__5__Impl_in_rule__ClosedExp__Group_1__513017);
            rule__ClosedExp__Group_1__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__5"


    // $ANTLR start "rule__ClosedExp__Group_1__5__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6300:1: rule__ClosedExp__Group_1__5__Impl : ( ( rule__ClosedExp__ElseCaseExpAssignment_1_5 ) ) ;
    public final void rule__ClosedExp__Group_1__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6304:1: ( ( ( rule__ClosedExp__ElseCaseExpAssignment_1_5 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6305:1: ( ( rule__ClosedExp__ElseCaseExpAssignment_1_5 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6305:1: ( ( rule__ClosedExp__ElseCaseExpAssignment_1_5 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6306:1: ( rule__ClosedExp__ElseCaseExpAssignment_1_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getElseCaseExpAssignment_1_5()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6307:1: ( rule__ClosedExp__ElseCaseExpAssignment_1_5 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6307:2: rule__ClosedExp__ElseCaseExpAssignment_1_5
            {
            pushFollow(FOLLOW_rule__ClosedExp__ElseCaseExpAssignment_1_5_in_rule__ClosedExp__Group_1__5__Impl13044);
            rule__ClosedExp__ElseCaseExpAssignment_1_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getElseCaseExpAssignment_1_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_1__5__Impl"


    // $ANTLR start "rule__ClosedExp__Group_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6329:1: rule__ClosedExp__Group_2__0 : rule__ClosedExp__Group_2__0__Impl rule__ClosedExp__Group_2__1 ;
    public final void rule__ClosedExp__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6333:1: ( rule__ClosedExp__Group_2__0__Impl rule__ClosedExp__Group_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6334:2: rule__ClosedExp__Group_2__0__Impl rule__ClosedExp__Group_2__1
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_2__0__Impl_in_rule__ClosedExp__Group_2__013086);
            rule__ClosedExp__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ClosedExp__Group_2__1_in_rule__ClosedExp__Group_2__013089);
            rule__ClosedExp__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2__0"


    // $ANTLR start "rule__ClosedExp__Group_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6341:1: rule__ClosedExp__Group_2__0__Impl : ( ( rule__ClosedExp__NameAssignment_2_0 ) ) ;
    public final void rule__ClosedExp__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6345:1: ( ( ( rule__ClosedExp__NameAssignment_2_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6346:1: ( ( rule__ClosedExp__NameAssignment_2_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6346:1: ( ( rule__ClosedExp__NameAssignment_2_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6347:1: ( rule__ClosedExp__NameAssignment_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getNameAssignment_2_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6348:1: ( rule__ClosedExp__NameAssignment_2_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6348:2: rule__ClosedExp__NameAssignment_2_0
            {
            pushFollow(FOLLOW_rule__ClosedExp__NameAssignment_2_0_in_rule__ClosedExp__Group_2__0__Impl13116);
            rule__ClosedExp__NameAssignment_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getNameAssignment_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2__0__Impl"


    // $ANTLR start "rule__ClosedExp__Group_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6358:1: rule__ClosedExp__Group_2__1 : rule__ClosedExp__Group_2__1__Impl rule__ClosedExp__Group_2__2 ;
    public final void rule__ClosedExp__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6362:1: ( rule__ClosedExp__Group_2__1__Impl rule__ClosedExp__Group_2__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6363:2: rule__ClosedExp__Group_2__1__Impl rule__ClosedExp__Group_2__2
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_2__1__Impl_in_rule__ClosedExp__Group_2__113146);
            rule__ClosedExp__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ClosedExp__Group_2__2_in_rule__ClosedExp__Group_2__113149);
            rule__ClosedExp__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2__1"


    // $ANTLR start "rule__ClosedExp__Group_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6370:1: rule__ClosedExp__Group_2__1__Impl : ( ( rule__ClosedExp__DoExpAssignment_2_1 ) ) ;
    public final void rule__ClosedExp__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6374:1: ( ( ( rule__ClosedExp__DoExpAssignment_2_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6375:1: ( ( rule__ClosedExp__DoExpAssignment_2_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6375:1: ( ( rule__ClosedExp__DoExpAssignment_2_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6376:1: ( rule__ClosedExp__DoExpAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getDoExpAssignment_2_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6377:1: ( rule__ClosedExp__DoExpAssignment_2_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6377:2: rule__ClosedExp__DoExpAssignment_2_1
            {
            pushFollow(FOLLOW_rule__ClosedExp__DoExpAssignment_2_1_in_rule__ClosedExp__Group_2__1__Impl13176);
            rule__ClosedExp__DoExpAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getDoExpAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2__1__Impl"


    // $ANTLR start "rule__ClosedExp__Group_2__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6387:1: rule__ClosedExp__Group_2__2 : rule__ClosedExp__Group_2__2__Impl rule__ClosedExp__Group_2__3 ;
    public final void rule__ClosedExp__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6391:1: ( rule__ClosedExp__Group_2__2__Impl rule__ClosedExp__Group_2__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6392:2: rule__ClosedExp__Group_2__2__Impl rule__ClosedExp__Group_2__3
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_2__2__Impl_in_rule__ClosedExp__Group_2__213206);
            rule__ClosedExp__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ClosedExp__Group_2__3_in_rule__ClosedExp__Group_2__213209);
            rule__ClosedExp__Group_2__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2__2"


    // $ANTLR start "rule__ClosedExp__Group_2__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6399:1: rule__ClosedExp__Group_2__2__Impl : ( ( rule__ClosedExp__Group_2_2__0 )* ) ;
    public final void rule__ClosedExp__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6403:1: ( ( ( rule__ClosedExp__Group_2_2__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6404:1: ( ( rule__ClosedExp__Group_2_2__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6404:1: ( ( rule__ClosedExp__Group_2_2__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6405:1: ( rule__ClosedExp__Group_2_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getGroup_2_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6406:1: ( rule__ClosedExp__Group_2_2__0 )*
            loop76:
            do {
                int alt76=2;
                int LA76_0 = input.LA(1);

                if ( (LA76_0==33) ) {
                    alt76=1;
                }


                switch (alt76) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6406:2: rule__ClosedExp__Group_2_2__0
            	    {
            	    pushFollow(FOLLOW_rule__ClosedExp__Group_2_2__0_in_rule__ClosedExp__Group_2__2__Impl13236);
            	    rule__ClosedExp__Group_2_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop76;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getGroup_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2__2__Impl"


    // $ANTLR start "rule__ClosedExp__Group_2__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6416:1: rule__ClosedExp__Group_2__3 : rule__ClosedExp__Group_2__3__Impl ;
    public final void rule__ClosedExp__Group_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6420:1: ( rule__ClosedExp__Group_2__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6421:2: rule__ClosedExp__Group_2__3__Impl
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_2__3__Impl_in_rule__ClosedExp__Group_2__313267);
            rule__ClosedExp__Group_2__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2__3"


    // $ANTLR start "rule__ClosedExp__Group_2__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6427:1: rule__ClosedExp__Group_2__3__Impl : ( 'end' ) ;
    public final void rule__ClosedExp__Group_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6431:1: ( ( 'end' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6432:1: ( 'end' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6432:1: ( 'end' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6433:1: 'end'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getEndKeyword_2_3()); 
            }
            match(input,50,FOLLOW_50_in_rule__ClosedExp__Group_2__3__Impl13295); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getEndKeyword_2_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2__3__Impl"


    // $ANTLR start "rule__ClosedExp__Group_2_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6454:1: rule__ClosedExp__Group_2_2__0 : rule__ClosedExp__Group_2_2__0__Impl rule__ClosedExp__Group_2_2__1 ;
    public final void rule__ClosedExp__Group_2_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6458:1: ( rule__ClosedExp__Group_2_2__0__Impl rule__ClosedExp__Group_2_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6459:2: rule__ClosedExp__Group_2_2__0__Impl rule__ClosedExp__Group_2_2__1
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_2_2__0__Impl_in_rule__ClosedExp__Group_2_2__013334);
            rule__ClosedExp__Group_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ClosedExp__Group_2_2__1_in_rule__ClosedExp__Group_2_2__013337);
            rule__ClosedExp__Group_2_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2_2__0"


    // $ANTLR start "rule__ClosedExp__Group_2_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6466:1: rule__ClosedExp__Group_2_2__0__Impl : ( ';' ) ;
    public final void rule__ClosedExp__Group_2_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6470:1: ( ( ';' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6471:1: ( ';' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6471:1: ( ';' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6472:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getSemicolonKeyword_2_2_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__ClosedExp__Group_2_2__0__Impl13365); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getSemicolonKeyword_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2_2__0__Impl"


    // $ANTLR start "rule__ClosedExp__Group_2_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6485:1: rule__ClosedExp__Group_2_2__1 : rule__ClosedExp__Group_2_2__1__Impl ;
    public final void rule__ClosedExp__Group_2_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6489:1: ( rule__ClosedExp__Group_2_2__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6490:2: rule__ClosedExp__Group_2_2__1__Impl
            {
            pushFollow(FOLLOW_rule__ClosedExp__Group_2_2__1__Impl_in_rule__ClosedExp__Group_2_2__113396);
            rule__ClosedExp__Group_2_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2_2__1"


    // $ANTLR start "rule__ClosedExp__Group_2_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6496:1: rule__ClosedExp__Group_2_2__1__Impl : ( ( rule__ClosedExp__DoExpAssignment_2_2_1 ) ) ;
    public final void rule__ClosedExp__Group_2_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6500:1: ( ( ( rule__ClosedExp__DoExpAssignment_2_2_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6501:1: ( ( rule__ClosedExp__DoExpAssignment_2_2_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6501:1: ( ( rule__ClosedExp__DoExpAssignment_2_2_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6502:1: ( rule__ClosedExp__DoExpAssignment_2_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getDoExpAssignment_2_2_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6503:1: ( rule__ClosedExp__DoExpAssignment_2_2_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6503:2: rule__ClosedExp__DoExpAssignment_2_2_1
            {
            pushFollow(FOLLOW_rule__ClosedExp__DoExpAssignment_2_2_1_in_rule__ClosedExp__Group_2_2__1__Impl13423);
            rule__ClosedExp__DoExpAssignment_2_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getDoExpAssignment_2_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__Group_2_2__1__Impl"


    // $ANTLR start "rule__MonadicExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6517:1: rule__MonadicExp__Group_1__0 : rule__MonadicExp__Group_1__0__Impl rule__MonadicExp__Group_1__1 ;
    public final void rule__MonadicExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6521:1: ( rule__MonadicExp__Group_1__0__Impl rule__MonadicExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6522:2: rule__MonadicExp__Group_1__0__Impl rule__MonadicExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__MonadicExp__Group_1__0__Impl_in_rule__MonadicExp__Group_1__013457);
            rule__MonadicExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MonadicExp__Group_1__1_in_rule__MonadicExp__Group_1__013460);
            rule__MonadicExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__Group_1__0"


    // $ANTLR start "rule__MonadicExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6529:1: rule__MonadicExp__Group_1__0__Impl : ( ( rule__MonadicExp__NameAssignment_1_0 ) ) ;
    public final void rule__MonadicExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6533:1: ( ( ( rule__MonadicExp__NameAssignment_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6534:1: ( ( rule__MonadicExp__NameAssignment_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6534:1: ( ( rule__MonadicExp__NameAssignment_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6535:1: ( rule__MonadicExp__NameAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMonadicExpAccess().getNameAssignment_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6536:1: ( rule__MonadicExp__NameAssignment_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6536:2: rule__MonadicExp__NameAssignment_1_0
            {
            pushFollow(FOLLOW_rule__MonadicExp__NameAssignment_1_0_in_rule__MonadicExp__Group_1__0__Impl13487);
            rule__MonadicExp__NameAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMonadicExpAccess().getNameAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__Group_1__0__Impl"


    // $ANTLR start "rule__MonadicExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6546:1: rule__MonadicExp__Group_1__1 : rule__MonadicExp__Group_1__1__Impl rule__MonadicExp__Group_1__2 ;
    public final void rule__MonadicExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6550:1: ( rule__MonadicExp__Group_1__1__Impl rule__MonadicExp__Group_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6551:2: rule__MonadicExp__Group_1__1__Impl rule__MonadicExp__Group_1__2
            {
            pushFollow(FOLLOW_rule__MonadicExp__Group_1__1__Impl_in_rule__MonadicExp__Group_1__113517);
            rule__MonadicExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MonadicExp__Group_1__2_in_rule__MonadicExp__Group_1__113520);
            rule__MonadicExp__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__Group_1__1"


    // $ANTLR start "rule__MonadicExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6558:1: rule__MonadicExp__Group_1__1__Impl : ( '<-' ) ;
    public final void rule__MonadicExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6562:1: ( ( '<-' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6563:1: ( '<-' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6563:1: ( '<-' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6564:1: '<-'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMonadicExpAccess().getLessThanSignHyphenMinusKeyword_1_1()); 
            }
            match(input,53,FOLLOW_53_in_rule__MonadicExp__Group_1__1__Impl13548); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMonadicExpAccess().getLessThanSignHyphenMinusKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__Group_1__1__Impl"


    // $ANTLR start "rule__MonadicExp__Group_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6577:1: rule__MonadicExp__Group_1__2 : rule__MonadicExp__Group_1__2__Impl ;
    public final void rule__MonadicExp__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6581:1: ( rule__MonadicExp__Group_1__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6582:2: rule__MonadicExp__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__MonadicExp__Group_1__2__Impl_in_rule__MonadicExp__Group_1__213579);
            rule__MonadicExp__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__Group_1__2"


    // $ANTLR start "rule__MonadicExp__Group_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6588:1: rule__MonadicExp__Group_1__2__Impl : ( ( rule__MonadicExp__ExpAssignment_1_2 ) ) ;
    public final void rule__MonadicExp__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6592:1: ( ( ( rule__MonadicExp__ExpAssignment_1_2 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6593:1: ( ( rule__MonadicExp__ExpAssignment_1_2 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6593:1: ( ( rule__MonadicExp__ExpAssignment_1_2 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6594:1: ( rule__MonadicExp__ExpAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMonadicExpAccess().getExpAssignment_1_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6595:1: ( rule__MonadicExp__ExpAssignment_1_2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6595:2: rule__MonadicExp__ExpAssignment_1_2
            {
            pushFollow(FOLLOW_rule__MonadicExp__ExpAssignment_1_2_in_rule__MonadicExp__Group_1__2__Impl13606);
            rule__MonadicExp__ExpAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMonadicExpAccess().getExpAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__Group_1__2__Impl"


    // $ANTLR start "rule__OrElseExp__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6611:1: rule__OrElseExp__Group__0 : rule__OrElseExp__Group__0__Impl rule__OrElseExp__Group__1 ;
    public final void rule__OrElseExp__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6615:1: ( rule__OrElseExp__Group__0__Impl rule__OrElseExp__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6616:2: rule__OrElseExp__Group__0__Impl rule__OrElseExp__Group__1
            {
            pushFollow(FOLLOW_rule__OrElseExp__Group__0__Impl_in_rule__OrElseExp__Group__013642);
            rule__OrElseExp__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__OrElseExp__Group__1_in_rule__OrElseExp__Group__013645);
            rule__OrElseExp__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group__0"


    // $ANTLR start "rule__OrElseExp__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6623:1: rule__OrElseExp__Group__0__Impl : ( ruleAndAlsoExp ) ;
    public final void rule__OrElseExp__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6627:1: ( ( ruleAndAlsoExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6628:1: ( ruleAndAlsoExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6628:1: ( ruleAndAlsoExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6629:1: ruleAndAlsoExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpAccess().getAndAlsoExpParserRuleCall_0()); 
            }
            pushFollow(FOLLOW_ruleAndAlsoExp_in_rule__OrElseExp__Group__0__Impl13672);
            ruleAndAlsoExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpAccess().getAndAlsoExpParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group__0__Impl"


    // $ANTLR start "rule__OrElseExp__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6640:1: rule__OrElseExp__Group__1 : rule__OrElseExp__Group__1__Impl ;
    public final void rule__OrElseExp__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6644:1: ( rule__OrElseExp__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6645:2: rule__OrElseExp__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__OrElseExp__Group__1__Impl_in_rule__OrElseExp__Group__113701);
            rule__OrElseExp__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group__1"


    // $ANTLR start "rule__OrElseExp__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6651:1: rule__OrElseExp__Group__1__Impl : ( ( rule__OrElseExp__Group_1__0 )* ) ;
    public final void rule__OrElseExp__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6655:1: ( ( ( rule__OrElseExp__Group_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6656:1: ( ( rule__OrElseExp__Group_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6656:1: ( ( rule__OrElseExp__Group_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6657:1: ( rule__OrElseExp__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpAccess().getGroup_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6658:1: ( rule__OrElseExp__Group_1__0 )*
            loop77:
            do {
                int alt77=2;
                int LA77_0 = input.LA(1);

                if ( (LA77_0==63) ) {
                    alt77=1;
                }


                switch (alt77) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6658:2: rule__OrElseExp__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__OrElseExp__Group_1__0_in_rule__OrElseExp__Group__1__Impl13728);
            	    rule__OrElseExp__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop77;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group__1__Impl"


    // $ANTLR start "rule__OrElseExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6672:1: rule__OrElseExp__Group_1__0 : rule__OrElseExp__Group_1__0__Impl rule__OrElseExp__Group_1__1 ;
    public final void rule__OrElseExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6676:1: ( rule__OrElseExp__Group_1__0__Impl rule__OrElseExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6677:2: rule__OrElseExp__Group_1__0__Impl rule__OrElseExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__OrElseExp__Group_1__0__Impl_in_rule__OrElseExp__Group_1__013763);
            rule__OrElseExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__OrElseExp__Group_1__1_in_rule__OrElseExp__Group_1__013766);
            rule__OrElseExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group_1__0"


    // $ANTLR start "rule__OrElseExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6684:1: rule__OrElseExp__Group_1__0__Impl : ( () ) ;
    public final void rule__OrElseExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6688:1: ( ( () ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6689:1: ( () )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6689:1: ( () )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6690:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpAccess().getOrElseExpLeftAction_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6691:1: ()
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6693:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpAccess().getOrElseExpLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group_1__0__Impl"


    // $ANTLR start "rule__OrElseExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6703:1: rule__OrElseExp__Group_1__1 : rule__OrElseExp__Group_1__1__Impl rule__OrElseExp__Group_1__2 ;
    public final void rule__OrElseExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6707:1: ( rule__OrElseExp__Group_1__1__Impl rule__OrElseExp__Group_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6708:2: rule__OrElseExp__Group_1__1__Impl rule__OrElseExp__Group_1__2
            {
            pushFollow(FOLLOW_rule__OrElseExp__Group_1__1__Impl_in_rule__OrElseExp__Group_1__113824);
            rule__OrElseExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__OrElseExp__Group_1__2_in_rule__OrElseExp__Group_1__113827);
            rule__OrElseExp__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group_1__1"


    // $ANTLR start "rule__OrElseExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6715:1: rule__OrElseExp__Group_1__1__Impl : ( ( rule__OrElseExp__NameAssignment_1_1 ) ) ;
    public final void rule__OrElseExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6719:1: ( ( ( rule__OrElseExp__NameAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6720:1: ( ( rule__OrElseExp__NameAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6720:1: ( ( rule__OrElseExp__NameAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6721:1: ( rule__OrElseExp__NameAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpAccess().getNameAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6722:1: ( rule__OrElseExp__NameAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6722:2: rule__OrElseExp__NameAssignment_1_1
            {
            pushFollow(FOLLOW_rule__OrElseExp__NameAssignment_1_1_in_rule__OrElseExp__Group_1__1__Impl13854);
            rule__OrElseExp__NameAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpAccess().getNameAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group_1__1__Impl"


    // $ANTLR start "rule__OrElseExp__Group_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6732:1: rule__OrElseExp__Group_1__2 : rule__OrElseExp__Group_1__2__Impl ;
    public final void rule__OrElseExp__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6736:1: ( rule__OrElseExp__Group_1__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6737:2: rule__OrElseExp__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__OrElseExp__Group_1__2__Impl_in_rule__OrElseExp__Group_1__213884);
            rule__OrElseExp__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group_1__2"


    // $ANTLR start "rule__OrElseExp__Group_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6743:1: rule__OrElseExp__Group_1__2__Impl : ( ( rule__OrElseExp__RightAssignment_1_2 ) ) ;
    public final void rule__OrElseExp__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6747:1: ( ( ( rule__OrElseExp__RightAssignment_1_2 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6748:1: ( ( rule__OrElseExp__RightAssignment_1_2 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6748:1: ( ( rule__OrElseExp__RightAssignment_1_2 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6749:1: ( rule__OrElseExp__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpAccess().getRightAssignment_1_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6750:1: ( rule__OrElseExp__RightAssignment_1_2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6750:2: rule__OrElseExp__RightAssignment_1_2
            {
            pushFollow(FOLLOW_rule__OrElseExp__RightAssignment_1_2_in_rule__OrElseExp__Group_1__2__Impl13911);
            rule__OrElseExp__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__Group_1__2__Impl"


    // $ANTLR start "rule__AndAlsoExp__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6766:1: rule__AndAlsoExp__Group__0 : rule__AndAlsoExp__Group__0__Impl rule__AndAlsoExp__Group__1 ;
    public final void rule__AndAlsoExp__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6770:1: ( rule__AndAlsoExp__Group__0__Impl rule__AndAlsoExp__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6771:2: rule__AndAlsoExp__Group__0__Impl rule__AndAlsoExp__Group__1
            {
            pushFollow(FOLLOW_rule__AndAlsoExp__Group__0__Impl_in_rule__AndAlsoExp__Group__013947);
            rule__AndAlsoExp__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AndAlsoExp__Group__1_in_rule__AndAlsoExp__Group__013950);
            rule__AndAlsoExp__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group__0"


    // $ANTLR start "rule__AndAlsoExp__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6778:1: rule__AndAlsoExp__Group__0__Impl : ( ruleRExp ) ;
    public final void rule__AndAlsoExp__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6782:1: ( ( ruleRExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6783:1: ( ruleRExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6783:1: ( ruleRExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6784:1: ruleRExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpAccess().getRExpParserRuleCall_0()); 
            }
            pushFollow(FOLLOW_ruleRExp_in_rule__AndAlsoExp__Group__0__Impl13977);
            ruleRExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpAccess().getRExpParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group__0__Impl"


    // $ANTLR start "rule__AndAlsoExp__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6795:1: rule__AndAlsoExp__Group__1 : rule__AndAlsoExp__Group__1__Impl ;
    public final void rule__AndAlsoExp__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6799:1: ( rule__AndAlsoExp__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6800:2: rule__AndAlsoExp__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__AndAlsoExp__Group__1__Impl_in_rule__AndAlsoExp__Group__114006);
            rule__AndAlsoExp__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group__1"


    // $ANTLR start "rule__AndAlsoExp__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6806:1: rule__AndAlsoExp__Group__1__Impl : ( ( rule__AndAlsoExp__Group_1__0 )* ) ;
    public final void rule__AndAlsoExp__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6810:1: ( ( ( rule__AndAlsoExp__Group_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6811:1: ( ( rule__AndAlsoExp__Group_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6811:1: ( ( rule__AndAlsoExp__Group_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6812:1: ( rule__AndAlsoExp__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpAccess().getGroup_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6813:1: ( rule__AndAlsoExp__Group_1__0 )*
            loop78:
            do {
                int alt78=2;
                int LA78_0 = input.LA(1);

                if ( (LA78_0==64) ) {
                    alt78=1;
                }


                switch (alt78) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6813:2: rule__AndAlsoExp__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__AndAlsoExp__Group_1__0_in_rule__AndAlsoExp__Group__1__Impl14033);
            	    rule__AndAlsoExp__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop78;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group__1__Impl"


    // $ANTLR start "rule__AndAlsoExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6827:1: rule__AndAlsoExp__Group_1__0 : rule__AndAlsoExp__Group_1__0__Impl rule__AndAlsoExp__Group_1__1 ;
    public final void rule__AndAlsoExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6831:1: ( rule__AndAlsoExp__Group_1__0__Impl rule__AndAlsoExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6832:2: rule__AndAlsoExp__Group_1__0__Impl rule__AndAlsoExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__AndAlsoExp__Group_1__0__Impl_in_rule__AndAlsoExp__Group_1__014068);
            rule__AndAlsoExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AndAlsoExp__Group_1__1_in_rule__AndAlsoExp__Group_1__014071);
            rule__AndAlsoExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group_1__0"


    // $ANTLR start "rule__AndAlsoExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6839:1: rule__AndAlsoExp__Group_1__0__Impl : ( () ) ;
    public final void rule__AndAlsoExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6843:1: ( ( () ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6844:1: ( () )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6844:1: ( () )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6845:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpAccess().getAndAlsoExpLeftAction_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6846:1: ()
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6848:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpAccess().getAndAlsoExpLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group_1__0__Impl"


    // $ANTLR start "rule__AndAlsoExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6858:1: rule__AndAlsoExp__Group_1__1 : rule__AndAlsoExp__Group_1__1__Impl rule__AndAlsoExp__Group_1__2 ;
    public final void rule__AndAlsoExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6862:1: ( rule__AndAlsoExp__Group_1__1__Impl rule__AndAlsoExp__Group_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6863:2: rule__AndAlsoExp__Group_1__1__Impl rule__AndAlsoExp__Group_1__2
            {
            pushFollow(FOLLOW_rule__AndAlsoExp__Group_1__1__Impl_in_rule__AndAlsoExp__Group_1__114129);
            rule__AndAlsoExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AndAlsoExp__Group_1__2_in_rule__AndAlsoExp__Group_1__114132);
            rule__AndAlsoExp__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group_1__1"


    // $ANTLR start "rule__AndAlsoExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6870:1: rule__AndAlsoExp__Group_1__1__Impl : ( ( rule__AndAlsoExp__NameAssignment_1_1 ) ) ;
    public final void rule__AndAlsoExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6874:1: ( ( ( rule__AndAlsoExp__NameAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6875:1: ( ( rule__AndAlsoExp__NameAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6875:1: ( ( rule__AndAlsoExp__NameAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6876:1: ( rule__AndAlsoExp__NameAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpAccess().getNameAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6877:1: ( rule__AndAlsoExp__NameAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6877:2: rule__AndAlsoExp__NameAssignment_1_1
            {
            pushFollow(FOLLOW_rule__AndAlsoExp__NameAssignment_1_1_in_rule__AndAlsoExp__Group_1__1__Impl14159);
            rule__AndAlsoExp__NameAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpAccess().getNameAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group_1__1__Impl"


    // $ANTLR start "rule__AndAlsoExp__Group_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6887:1: rule__AndAlsoExp__Group_1__2 : rule__AndAlsoExp__Group_1__2__Impl ;
    public final void rule__AndAlsoExp__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6891:1: ( rule__AndAlsoExp__Group_1__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6892:2: rule__AndAlsoExp__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__AndAlsoExp__Group_1__2__Impl_in_rule__AndAlsoExp__Group_1__214189);
            rule__AndAlsoExp__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group_1__2"


    // $ANTLR start "rule__AndAlsoExp__Group_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6898:1: rule__AndAlsoExp__Group_1__2__Impl : ( ( rule__AndAlsoExp__RightAssignment_1_2 ) ) ;
    public final void rule__AndAlsoExp__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6902:1: ( ( ( rule__AndAlsoExp__RightAssignment_1_2 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6903:1: ( ( rule__AndAlsoExp__RightAssignment_1_2 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6903:1: ( ( rule__AndAlsoExp__RightAssignment_1_2 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6904:1: ( rule__AndAlsoExp__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpAccess().getRightAssignment_1_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6905:1: ( rule__AndAlsoExp__RightAssignment_1_2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6905:2: rule__AndAlsoExp__RightAssignment_1_2
            {
            pushFollow(FOLLOW_rule__AndAlsoExp__RightAssignment_1_2_in_rule__AndAlsoExp__Group_1__2__Impl14216);
            rule__AndAlsoExp__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__Group_1__2__Impl"


    // $ANTLR start "rule__RExp__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6921:1: rule__RExp__Group__0 : rule__RExp__Group__0__Impl rule__RExp__Group__1 ;
    public final void rule__RExp__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6925:1: ( rule__RExp__Group__0__Impl rule__RExp__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6926:2: rule__RExp__Group__0__Impl rule__RExp__Group__1
            {
            pushFollow(FOLLOW_rule__RExp__Group__0__Impl_in_rule__RExp__Group__014252);
            rule__RExp__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__RExp__Group__1_in_rule__RExp__Group__014255);
            rule__RExp__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__Group__0"


    // $ANTLR start "rule__RExp__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6933:1: rule__RExp__Group__0__Impl : ( ruleAExp ) ;
    public final void rule__RExp__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6937:1: ( ( ruleAExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6938:1: ( ruleAExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6938:1: ( ruleAExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6939:1: ruleAExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRExpAccess().getAExpParserRuleCall_0()); 
            }
            pushFollow(FOLLOW_ruleAExp_in_rule__RExp__Group__0__Impl14282);
            ruleAExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRExpAccess().getAExpParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__Group__0__Impl"


    // $ANTLR start "rule__RExp__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6950:1: rule__RExp__Group__1 : rule__RExp__Group__1__Impl ;
    public final void rule__RExp__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6954:1: ( rule__RExp__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6955:2: rule__RExp__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__RExp__Group__1__Impl_in_rule__RExp__Group__114311);
            rule__RExp__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__Group__1"


    // $ANTLR start "rule__RExp__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6961:1: rule__RExp__Group__1__Impl : ( ( rule__RExp__Group_1__0 )* ) ;
    public final void rule__RExp__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6965:1: ( ( ( rule__RExp__Group_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6966:1: ( ( rule__RExp__Group_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6966:1: ( ( rule__RExp__Group_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6967:1: ( rule__RExp__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRExpAccess().getGroup_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6968:1: ( rule__RExp__Group_1__0 )*
            loop79:
            do {
                int alt79=2;
                alt79 = dfa79.predict(input);
                switch (alt79) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6968:2: rule__RExp__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__RExp__Group_1__0_in_rule__RExp__Group__1__Impl14338);
            	    rule__RExp__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop79;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRExpAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__Group__1__Impl"


    // $ANTLR start "rule__RExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6982:1: rule__RExp__Group_1__0 : rule__RExp__Group_1__0__Impl rule__RExp__Group_1__1 ;
    public final void rule__RExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6986:1: ( rule__RExp__Group_1__0__Impl rule__RExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6987:2: rule__RExp__Group_1__0__Impl rule__RExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__RExp__Group_1__0__Impl_in_rule__RExp__Group_1__014373);
            rule__RExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__RExp__Group_1__1_in_rule__RExp__Group_1__014376);
            rule__RExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__Group_1__0"


    // $ANTLR start "rule__RExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6994:1: rule__RExp__Group_1__0__Impl : ( ( rule__RExp__SymAssignment_1_0 ) ) ;
    public final void rule__RExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6998:1: ( ( ( rule__RExp__SymAssignment_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6999:1: ( ( rule__RExp__SymAssignment_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6999:1: ( ( rule__RExp__SymAssignment_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7000:1: ( rule__RExp__SymAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRExpAccess().getSymAssignment_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7001:1: ( rule__RExp__SymAssignment_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7001:2: rule__RExp__SymAssignment_1_0
            {
            pushFollow(FOLLOW_rule__RExp__SymAssignment_1_0_in_rule__RExp__Group_1__0__Impl14403);
            rule__RExp__SymAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRExpAccess().getSymAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__Group_1__0__Impl"


    // $ANTLR start "rule__RExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7011:1: rule__RExp__Group_1__1 : rule__RExp__Group_1__1__Impl ;
    public final void rule__RExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7015:1: ( rule__RExp__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7016:2: rule__RExp__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__RExp__Group_1__1__Impl_in_rule__RExp__Group_1__114433);
            rule__RExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__Group_1__1"


    // $ANTLR start "rule__RExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7022:1: rule__RExp__Group_1__1__Impl : ( ( rule__RExp__AexpsAssignment_1_1 ) ) ;
    public final void rule__RExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7026:1: ( ( ( rule__RExp__AexpsAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7027:1: ( ( rule__RExp__AexpsAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7027:1: ( ( rule__RExp__AexpsAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7028:1: ( rule__RExp__AexpsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRExpAccess().getAexpsAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7029:1: ( rule__RExp__AexpsAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7029:2: rule__RExp__AexpsAssignment_1_1
            {
            pushFollow(FOLLOW_rule__RExp__AexpsAssignment_1_1_in_rule__RExp__Group_1__1__Impl14460);
            rule__RExp__AexpsAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRExpAccess().getAexpsAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__Group_1__1__Impl"


    // $ANTLR start "rule__AExp__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7043:1: rule__AExp__Group__0 : rule__AExp__Group__0__Impl rule__AExp__Group__1 ;
    public final void rule__AExp__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7047:1: ( rule__AExp__Group__0__Impl rule__AExp__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7048:2: rule__AExp__Group__0__Impl rule__AExp__Group__1
            {
            pushFollow(FOLLOW_rule__AExp__Group__0__Impl_in_rule__AExp__Group__014494);
            rule__AExp__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AExp__Group__1_in_rule__AExp__Group__014497);
            rule__AExp__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__Group__0"


    // $ANTLR start "rule__AExp__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7055:1: rule__AExp__Group__0__Impl : ( ruleMExp ) ;
    public final void rule__AExp__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7059:1: ( ( ruleMExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7060:1: ( ruleMExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7060:1: ( ruleMExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7061:1: ruleMExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAExpAccess().getMExpParserRuleCall_0()); 
            }
            pushFollow(FOLLOW_ruleMExp_in_rule__AExp__Group__0__Impl14524);
            ruleMExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAExpAccess().getMExpParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__Group__0__Impl"


    // $ANTLR start "rule__AExp__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7072:1: rule__AExp__Group__1 : rule__AExp__Group__1__Impl ;
    public final void rule__AExp__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7076:1: ( rule__AExp__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7077:2: rule__AExp__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__AExp__Group__1__Impl_in_rule__AExp__Group__114553);
            rule__AExp__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__Group__1"


    // $ANTLR start "rule__AExp__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7083:1: rule__AExp__Group__1__Impl : ( ( rule__AExp__Group_1__0 )* ) ;
    public final void rule__AExp__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7087:1: ( ( ( rule__AExp__Group_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7088:1: ( ( rule__AExp__Group_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7088:1: ( ( rule__AExp__Group_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7089:1: ( rule__AExp__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAExpAccess().getGroup_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7090:1: ( rule__AExp__Group_1__0 )*
            loop80:
            do {
                int alt80=2;
                int LA80_0 = input.LA(1);

                if ( ((LA80_0>=28 && LA80_0<=29)) ) {
                    alt80=1;
                }


                switch (alt80) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7090:2: rule__AExp__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__AExp__Group_1__0_in_rule__AExp__Group__1__Impl14580);
            	    rule__AExp__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop80;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAExpAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__Group__1__Impl"


    // $ANTLR start "rule__AExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7104:1: rule__AExp__Group_1__0 : rule__AExp__Group_1__0__Impl rule__AExp__Group_1__1 ;
    public final void rule__AExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7108:1: ( rule__AExp__Group_1__0__Impl rule__AExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7109:2: rule__AExp__Group_1__0__Impl rule__AExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__AExp__Group_1__0__Impl_in_rule__AExp__Group_1__014615);
            rule__AExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AExp__Group_1__1_in_rule__AExp__Group_1__014618);
            rule__AExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__Group_1__0"


    // $ANTLR start "rule__AExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7116:1: rule__AExp__Group_1__0__Impl : ( ( rule__AExp__SignAssignment_1_0 ) ) ;
    public final void rule__AExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7120:1: ( ( ( rule__AExp__SignAssignment_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7121:1: ( ( rule__AExp__SignAssignment_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7121:1: ( ( rule__AExp__SignAssignment_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7122:1: ( rule__AExp__SignAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAExpAccess().getSignAssignment_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7123:1: ( rule__AExp__SignAssignment_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7123:2: rule__AExp__SignAssignment_1_0
            {
            pushFollow(FOLLOW_rule__AExp__SignAssignment_1_0_in_rule__AExp__Group_1__0__Impl14645);
            rule__AExp__SignAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAExpAccess().getSignAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__Group_1__0__Impl"


    // $ANTLR start "rule__AExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7133:1: rule__AExp__Group_1__1 : rule__AExp__Group_1__1__Impl ;
    public final void rule__AExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7137:1: ( rule__AExp__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7138:2: rule__AExp__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__AExp__Group_1__1__Impl_in_rule__AExp__Group_1__114675);
            rule__AExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__Group_1__1"


    // $ANTLR start "rule__AExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7144:1: rule__AExp__Group_1__1__Impl : ( ( rule__AExp__MexpsAssignment_1_1 ) ) ;
    public final void rule__AExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7148:1: ( ( ( rule__AExp__MexpsAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7149:1: ( ( rule__AExp__MexpsAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7149:1: ( ( rule__AExp__MexpsAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7150:1: ( rule__AExp__MexpsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAExpAccess().getMexpsAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7151:1: ( rule__AExp__MexpsAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7151:2: rule__AExp__MexpsAssignment_1_1
            {
            pushFollow(FOLLOW_rule__AExp__MexpsAssignment_1_1_in_rule__AExp__Group_1__1__Impl14702);
            rule__AExp__MexpsAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAExpAccess().getMexpsAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__Group_1__1__Impl"


    // $ANTLR start "rule__MExp__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7165:1: rule__MExp__Group__0 : rule__MExp__Group__0__Impl rule__MExp__Group__1 ;
    public final void rule__MExp__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7169:1: ( rule__MExp__Group__0__Impl rule__MExp__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7170:2: rule__MExp__Group__0__Impl rule__MExp__Group__1
            {
            pushFollow(FOLLOW_rule__MExp__Group__0__Impl_in_rule__MExp__Group__014736);
            rule__MExp__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MExp__Group__1_in_rule__MExp__Group__014739);
            rule__MExp__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__Group__0"


    // $ANTLR start "rule__MExp__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7177:1: rule__MExp__Group__0__Impl : ( ruleSelectExp ) ;
    public final void rule__MExp__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7181:1: ( ( ruleSelectExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7182:1: ( ruleSelectExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7182:1: ( ruleSelectExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7183:1: ruleSelectExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMExpAccess().getSelectExpParserRuleCall_0()); 
            }
            pushFollow(FOLLOW_ruleSelectExp_in_rule__MExp__Group__0__Impl14766);
            ruleSelectExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMExpAccess().getSelectExpParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__Group__0__Impl"


    // $ANTLR start "rule__MExp__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7194:1: rule__MExp__Group__1 : rule__MExp__Group__1__Impl ;
    public final void rule__MExp__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7198:1: ( rule__MExp__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7199:2: rule__MExp__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__MExp__Group__1__Impl_in_rule__MExp__Group__114795);
            rule__MExp__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__Group__1"


    // $ANTLR start "rule__MExp__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7205:1: rule__MExp__Group__1__Impl : ( ( rule__MExp__Group_1__0 )* ) ;
    public final void rule__MExp__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7209:1: ( ( ( rule__MExp__Group_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7210:1: ( ( rule__MExp__Group_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7210:1: ( ( rule__MExp__Group_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7211:1: ( rule__MExp__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMExpAccess().getGroup_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7212:1: ( rule__MExp__Group_1__0 )*
            loop81:
            do {
                int alt81=2;
                int LA81_0 = input.LA(1);

                if ( ((LA81_0>=30 && LA81_0<=31)) ) {
                    alt81=1;
                }


                switch (alt81) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7212:2: rule__MExp__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__MExp__Group_1__0_in_rule__MExp__Group__1__Impl14822);
            	    rule__MExp__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop81;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMExpAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__Group__1__Impl"


    // $ANTLR start "rule__MExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7226:1: rule__MExp__Group_1__0 : rule__MExp__Group_1__0__Impl rule__MExp__Group_1__1 ;
    public final void rule__MExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7230:1: ( rule__MExp__Group_1__0__Impl rule__MExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7231:2: rule__MExp__Group_1__0__Impl rule__MExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__MExp__Group_1__0__Impl_in_rule__MExp__Group_1__014857);
            rule__MExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MExp__Group_1__1_in_rule__MExp__Group_1__014860);
            rule__MExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__Group_1__0"


    // $ANTLR start "rule__MExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7238:1: rule__MExp__Group_1__0__Impl : ( ( rule__MExp__SymbolAssignment_1_0 ) ) ;
    public final void rule__MExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7242:1: ( ( ( rule__MExp__SymbolAssignment_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7243:1: ( ( rule__MExp__SymbolAssignment_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7243:1: ( ( rule__MExp__SymbolAssignment_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7244:1: ( rule__MExp__SymbolAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMExpAccess().getSymbolAssignment_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7245:1: ( rule__MExp__SymbolAssignment_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7245:2: rule__MExp__SymbolAssignment_1_0
            {
            pushFollow(FOLLOW_rule__MExp__SymbolAssignment_1_0_in_rule__MExp__Group_1__0__Impl14887);
            rule__MExp__SymbolAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMExpAccess().getSymbolAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__Group_1__0__Impl"


    // $ANTLR start "rule__MExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7255:1: rule__MExp__Group_1__1 : rule__MExp__Group_1__1__Impl ;
    public final void rule__MExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7259:1: ( rule__MExp__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7260:2: rule__MExp__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__MExp__Group_1__1__Impl_in_rule__MExp__Group_1__114917);
            rule__MExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__Group_1__1"


    // $ANTLR start "rule__MExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7266:1: rule__MExp__Group_1__1__Impl : ( ( rule__MExp__ApplyexpsAssignment_1_1 ) ) ;
    public final void rule__MExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7270:1: ( ( ( rule__MExp__ApplyexpsAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7271:1: ( ( rule__MExp__ApplyexpsAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7271:1: ( ( rule__MExp__ApplyexpsAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7272:1: ( rule__MExp__ApplyexpsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMExpAccess().getApplyexpsAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7273:1: ( rule__MExp__ApplyexpsAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7273:2: rule__MExp__ApplyexpsAssignment_1_1
            {
            pushFollow(FOLLOW_rule__MExp__ApplyexpsAssignment_1_1_in_rule__MExp__Group_1__1__Impl14944);
            rule__MExp__ApplyexpsAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMExpAccess().getApplyexpsAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__Group_1__1__Impl"


    // $ANTLR start "rule__SelectExp__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7287:1: rule__SelectExp__Group__0 : rule__SelectExp__Group__0__Impl rule__SelectExp__Group__1 ;
    public final void rule__SelectExp__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7291:1: ( rule__SelectExp__Group__0__Impl rule__SelectExp__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7292:2: rule__SelectExp__Group__0__Impl rule__SelectExp__Group__1
            {
            pushFollow(FOLLOW_rule__SelectExp__Group__0__Impl_in_rule__SelectExp__Group__014978);
            rule__SelectExp__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SelectExp__Group__1_in_rule__SelectExp__Group__014981);
            rule__SelectExp__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SelectExp__Group__0"


    // $ANTLR start "rule__SelectExp__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7299:1: rule__SelectExp__Group__0__Impl : ( ruleApplyExp ) ;
    public final void rule__SelectExp__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7303:1: ( ( ruleApplyExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7304:1: ( ruleApplyExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7304:1: ( ruleApplyExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7305:1: ruleApplyExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSelectExpAccess().getApplyExpParserRuleCall_0()); 
            }
            pushFollow(FOLLOW_ruleApplyExp_in_rule__SelectExp__Group__0__Impl15008);
            ruleApplyExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSelectExpAccess().getApplyExpParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SelectExp__Group__0__Impl"


    // $ANTLR start "rule__SelectExp__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7316:1: rule__SelectExp__Group__1 : rule__SelectExp__Group__1__Impl ;
    public final void rule__SelectExp__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7320:1: ( rule__SelectExp__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7321:2: rule__SelectExp__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__SelectExp__Group__1__Impl_in_rule__SelectExp__Group__115037);
            rule__SelectExp__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SelectExp__Group__1"


    // $ANTLR start "rule__SelectExp__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7327:1: rule__SelectExp__Group__1__Impl : ( ( rule__SelectExp__Group_1__0 )* ) ;
    public final void rule__SelectExp__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7331:1: ( ( ( rule__SelectExp__Group_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7332:1: ( ( rule__SelectExp__Group_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7332:1: ( ( rule__SelectExp__Group_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7333:1: ( rule__SelectExp__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSelectExpAccess().getGroup_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7334:1: ( rule__SelectExp__Group_1__0 )*
            loop82:
            do {
                int alt82=2;
                int LA82_0 = input.LA(1);

                if ( (LA82_0==54) ) {
                    alt82=1;
                }


                switch (alt82) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7334:2: rule__SelectExp__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__SelectExp__Group_1__0_in_rule__SelectExp__Group__1__Impl15064);
            	    rule__SelectExp__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop82;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSelectExpAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SelectExp__Group__1__Impl"


    // $ANTLR start "rule__SelectExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7348:1: rule__SelectExp__Group_1__0 : rule__SelectExp__Group_1__0__Impl rule__SelectExp__Group_1__1 ;
    public final void rule__SelectExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7352:1: ( rule__SelectExp__Group_1__0__Impl rule__SelectExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7353:2: rule__SelectExp__Group_1__0__Impl rule__SelectExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__SelectExp__Group_1__0__Impl_in_rule__SelectExp__Group_1__015099);
            rule__SelectExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SelectExp__Group_1__1_in_rule__SelectExp__Group_1__015102);
            rule__SelectExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SelectExp__Group_1__0"


    // $ANTLR start "rule__SelectExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7360:1: rule__SelectExp__Group_1__0__Impl : ( '^' ) ;
    public final void rule__SelectExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7364:1: ( ( '^' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7365:1: ( '^' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7365:1: ( '^' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7366:1: '^'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSelectExpAccess().getCircumflexAccentKeyword_1_0()); 
            }
            match(input,54,FOLLOW_54_in_rule__SelectExp__Group_1__0__Impl15130); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSelectExpAccess().getCircumflexAccentKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SelectExp__Group_1__0__Impl"


    // $ANTLR start "rule__SelectExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7379:1: rule__SelectExp__Group_1__1 : rule__SelectExp__Group_1__1__Impl ;
    public final void rule__SelectExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7383:1: ( rule__SelectExp__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7384:2: rule__SelectExp__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__SelectExp__Group_1__1__Impl_in_rule__SelectExp__Group_1__115161);
            rule__SelectExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SelectExp__Group_1__1"


    // $ANTLR start "rule__SelectExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7390:1: rule__SelectExp__Group_1__1__Impl : ( ( rule__SelectExp__ApplyexpsAssignment_1_1 ) ) ;
    public final void rule__SelectExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7394:1: ( ( ( rule__SelectExp__ApplyexpsAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7395:1: ( ( rule__SelectExp__ApplyexpsAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7395:1: ( ( rule__SelectExp__ApplyexpsAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7396:1: ( rule__SelectExp__ApplyexpsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSelectExpAccess().getApplyexpsAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7397:1: ( rule__SelectExp__ApplyexpsAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7397:2: rule__SelectExp__ApplyexpsAssignment_1_1
            {
            pushFollow(FOLLOW_rule__SelectExp__ApplyexpsAssignment_1_1_in_rule__SelectExp__Group_1__1__Impl15188);
            rule__SelectExp__ApplyexpsAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSelectExpAccess().getApplyexpsAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SelectExp__Group_1__1__Impl"


    // $ANTLR start "rule__ApplyExp__Group_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7411:1: rule__ApplyExp__Group_0__0 : rule__ApplyExp__Group_0__0__Impl rule__ApplyExp__Group_0__1 ;
    public final void rule__ApplyExp__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7415:1: ( rule__ApplyExp__Group_0__0__Impl rule__ApplyExp__Group_0__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7416:2: rule__ApplyExp__Group_0__0__Impl rule__ApplyExp__Group_0__1
            {
            pushFollow(FOLLOW_rule__ApplyExp__Group_0__0__Impl_in_rule__ApplyExp__Group_0__015222);
            rule__ApplyExp__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ApplyExp__Group_0__1_in_rule__ApplyExp__Group_0__015225);
            rule__ApplyExp__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__Group_0__0"


    // $ANTLR start "rule__ApplyExp__Group_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7423:1: rule__ApplyExp__Group_0__0__Impl : ( '~' ) ;
    public final void rule__ApplyExp__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7427:1: ( ( '~' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7428:1: ( '~' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7428:1: ( '~' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7429:1: '~'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getApplyExpAccess().getTildeKeyword_0_0()); 
            }
            match(input,55,FOLLOW_55_in_rule__ApplyExp__Group_0__0__Impl15253); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getApplyExpAccess().getTildeKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__Group_0__0__Impl"


    // $ANTLR start "rule__ApplyExp__Group_0__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7442:1: rule__ApplyExp__Group_0__1 : rule__ApplyExp__Group_0__1__Impl ;
    public final void rule__ApplyExp__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7446:1: ( rule__ApplyExp__Group_0__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7447:2: rule__ApplyExp__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__ApplyExp__Group_0__1__Impl_in_rule__ApplyExp__Group_0__115284);
            rule__ApplyExp__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__Group_0__1"


    // $ANTLR start "rule__ApplyExp__Group_0__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7453:1: rule__ApplyExp__Group_0__1__Impl : ( ruleAtomicExp ) ;
    public final void rule__ApplyExp__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7457:1: ( ( ruleAtomicExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7458:1: ( ruleAtomicExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7458:1: ( ruleAtomicExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7459:1: ruleAtomicExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getApplyExpAccess().getAtomicExpParserRuleCall_0_1()); 
            }
            pushFollow(FOLLOW_ruleAtomicExp_in_rule__ApplyExp__Group_0__1__Impl15311);
            ruleAtomicExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getApplyExpAccess().getAtomicExpParserRuleCall_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__Group_0__1__Impl"


    // $ANTLR start "rule__ApplyExp__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7474:1: rule__ApplyExp__Group_1__0 : rule__ApplyExp__Group_1__0__Impl rule__ApplyExp__Group_1__1 ;
    public final void rule__ApplyExp__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7478:1: ( rule__ApplyExp__Group_1__0__Impl rule__ApplyExp__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7479:2: rule__ApplyExp__Group_1__0__Impl rule__ApplyExp__Group_1__1
            {
            pushFollow(FOLLOW_rule__ApplyExp__Group_1__0__Impl_in_rule__ApplyExp__Group_1__015344);
            rule__ApplyExp__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ApplyExp__Group_1__1_in_rule__ApplyExp__Group_1__015347);
            rule__ApplyExp__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__Group_1__0"


    // $ANTLR start "rule__ApplyExp__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7486:1: rule__ApplyExp__Group_1__0__Impl : ( ( rule__ApplyExp__AtomicExpAssignment_1_0 ) ) ;
    public final void rule__ApplyExp__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7490:1: ( ( ( rule__ApplyExp__AtomicExpAssignment_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7491:1: ( ( rule__ApplyExp__AtomicExpAssignment_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7491:1: ( ( rule__ApplyExp__AtomicExpAssignment_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7492:1: ( rule__ApplyExp__AtomicExpAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getApplyExpAccess().getAtomicExpAssignment_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7493:1: ( rule__ApplyExp__AtomicExpAssignment_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7493:2: rule__ApplyExp__AtomicExpAssignment_1_0
            {
            pushFollow(FOLLOW_rule__ApplyExp__AtomicExpAssignment_1_0_in_rule__ApplyExp__Group_1__0__Impl15374);
            rule__ApplyExp__AtomicExpAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getApplyExpAccess().getAtomicExpAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__Group_1__0__Impl"


    // $ANTLR start "rule__ApplyExp__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7503:1: rule__ApplyExp__Group_1__1 : rule__ApplyExp__Group_1__1__Impl ;
    public final void rule__ApplyExp__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7507:1: ( rule__ApplyExp__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7508:2: rule__ApplyExp__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__ApplyExp__Group_1__1__Impl_in_rule__ApplyExp__Group_1__115404);
            rule__ApplyExp__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__Group_1__1"


    // $ANTLR start "rule__ApplyExp__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7514:1: rule__ApplyExp__Group_1__1__Impl : ( ( rule__ApplyExp__ArgsAssignment_1_1 ) ) ;
    public final void rule__ApplyExp__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7518:1: ( ( ( rule__ApplyExp__ArgsAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7519:1: ( ( rule__ApplyExp__ArgsAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7519:1: ( ( rule__ApplyExp__ArgsAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7520:1: ( rule__ApplyExp__ArgsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getApplyExpAccess().getArgsAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7521:1: ( rule__ApplyExp__ArgsAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7521:2: rule__ApplyExp__ArgsAssignment_1_1
            {
            pushFollow(FOLLOW_rule__ApplyExp__ArgsAssignment_1_1_in_rule__ApplyExp__Group_1__1__Impl15431);
            rule__ApplyExp__ArgsAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getApplyExpAccess().getArgsAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__Group_1__1__Impl"


    // $ANTLR start "rule__Args__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7535:1: rule__Args__Group__0 : rule__Args__Group__0__Impl rule__Args__Group__1 ;
    public final void rule__Args__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7539:1: ( rule__Args__Group__0__Impl rule__Args__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7540:2: rule__Args__Group__0__Impl rule__Args__Group__1
            {
            pushFollow(FOLLOW_rule__Args__Group__0__Impl_in_rule__Args__Group__015465);
            rule__Args__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Args__Group__1_in_rule__Args__Group__015468);
            rule__Args__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Args__Group__0"


    // $ANTLR start "rule__Args__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7547:1: rule__Args__Group__0__Impl : ( () ) ;
    public final void rule__Args__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7551:1: ( ( () ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7552:1: ( () )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7552:1: ( () )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7553:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgsAccess().getArgsAction_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7554:1: ()
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7556:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgsAccess().getArgsAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Args__Group__0__Impl"


    // $ANTLR start "rule__Args__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7566:1: rule__Args__Group__1 : rule__Args__Group__1__Impl ;
    public final void rule__Args__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7570:1: ( rule__Args__Group__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7571:2: rule__Args__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Args__Group__1__Impl_in_rule__Args__Group__115526);
            rule__Args__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Args__Group__1"


    // $ANTLR start "rule__Args__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7577:1: rule__Args__Group__1__Impl : ( ( rule__Args__Alternatives_1 ) ) ;
    public final void rule__Args__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7581:1: ( ( ( rule__Args__Alternatives_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7582:1: ( ( rule__Args__Alternatives_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7582:1: ( ( rule__Args__Alternatives_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7583:1: ( rule__Args__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgsAccess().getAlternatives_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7584:1: ( rule__Args__Alternatives_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7584:2: rule__Args__Alternatives_1
            {
            pushFollow(FOLLOW_rule__Args__Alternatives_1_in_rule__Args__Group__1__Impl15553);
            rule__Args__Alternatives_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgsAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Args__Group__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7598:1: rule__AtomicExp__Group_2__0 : rule__AtomicExp__Group_2__0__Impl rule__AtomicExp__Group_2__1 ;
    public final void rule__AtomicExp__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7602:1: ( rule__AtomicExp__Group_2__0__Impl rule__AtomicExp__Group_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7603:2: rule__AtomicExp__Group_2__0__Impl rule__AtomicExp__Group_2__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_2__0__Impl_in_rule__AtomicExp__Group_2__015587);
            rule__AtomicExp__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_2__1_in_rule__AtomicExp__Group_2__015590);
            rule__AtomicExp__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_2__0"


    // $ANTLR start "rule__AtomicExp__Group_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7610:1: rule__AtomicExp__Group_2__0__Impl : ( ( rule__AtomicExp__NameAssignment_2_0 ) ) ;
    public final void rule__AtomicExp__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7614:1: ( ( ( rule__AtomicExp__NameAssignment_2_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7615:1: ( ( rule__AtomicExp__NameAssignment_2_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7615:1: ( ( rule__AtomicExp__NameAssignment_2_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7616:1: ( rule__AtomicExp__NameAssignment_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameAssignment_2_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7617:1: ( rule__AtomicExp__NameAssignment_2_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7617:2: rule__AtomicExp__NameAssignment_2_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__NameAssignment_2_0_in_rule__AtomicExp__Group_2__0__Impl15617);
            rule__AtomicExp__NameAssignment_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameAssignment_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_2__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7627:1: rule__AtomicExp__Group_2__1 : rule__AtomicExp__Group_2__1__Impl ;
    public final void rule__AtomicExp__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7631:1: ( rule__AtomicExp__Group_2__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7632:2: rule__AtomicExp__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_2__1__Impl_in_rule__AtomicExp__Group_2__115647);
            rule__AtomicExp__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_2__1"


    // $ANTLR start "rule__AtomicExp__Group_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7638:1: rule__AtomicExp__Group_2__1__Impl : ( ( rule__AtomicExp__Group_2_1__0 )* ) ;
    public final void rule__AtomicExp__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7642:1: ( ( ( rule__AtomicExp__Group_2_1__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7643:1: ( ( rule__AtomicExp__Group_2_1__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7643:1: ( ( rule__AtomicExp__Group_2_1__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7644:1: ( rule__AtomicExp__Group_2_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getGroup_2_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7645:1: ( rule__AtomicExp__Group_2_1__0 )*
            loop83:
            do {
                int alt83=2;
                int LA83_0 = input.LA(1);

                if ( (LA83_0==RULE_DOT) ) {
                    int LA83_2 = input.LA(2);

                    if ( (LA83_2==RULE_ID) ) {
                        int LA83_3 = input.LA(3);

                        if ( (synpred108_InternalGDSL()) ) {
                            alt83=1;
                        }


                    }
                    else if ( (LA83_2==RULE_S) ) {
                        int LA83_4 = input.LA(3);

                        if ( (synpred108_InternalGDSL()) ) {
                            alt83=1;
                        }


                    }


                }


                switch (alt83) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7645:2: rule__AtomicExp__Group_2_1__0
            	    {
            	    pushFollow(FOLLOW_rule__AtomicExp__Group_2_1__0_in_rule__AtomicExp__Group_2__1__Impl15674);
            	    rule__AtomicExp__Group_2_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop83;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getGroup_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_2__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_2_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7659:1: rule__AtomicExp__Group_2_1__0 : rule__AtomicExp__Group_2_1__0__Impl rule__AtomicExp__Group_2_1__1 ;
    public final void rule__AtomicExp__Group_2_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7663:1: ( rule__AtomicExp__Group_2_1__0__Impl rule__AtomicExp__Group_2_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7664:2: rule__AtomicExp__Group_2_1__0__Impl rule__AtomicExp__Group_2_1__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_2_1__0__Impl_in_rule__AtomicExp__Group_2_1__015709);
            rule__AtomicExp__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_2_1__1_in_rule__AtomicExp__Group_2_1__015712);
            rule__AtomicExp__Group_2_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_2_1__0"


    // $ANTLR start "rule__AtomicExp__Group_2_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7671:1: rule__AtomicExp__Group_2_1__0__Impl : ( ( RULE_DOT ) ) ;
    public final void rule__AtomicExp__Group_2_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7675:1: ( ( ( RULE_DOT ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7676:1: ( ( RULE_DOT ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7676:1: ( ( RULE_DOT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7677:1: ( RULE_DOT )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getDOTTerminalRuleCall_2_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7678:1: ( RULE_DOT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7678:3: RULE_DOT
            {
            match(input,RULE_DOT,FOLLOW_RULE_DOT_in_rule__AtomicExp__Group_2_1__0__Impl15740); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getDOTTerminalRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_2_1__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_2_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7688:1: rule__AtomicExp__Group_2_1__1 : rule__AtomicExp__Group_2_1__1__Impl ;
    public final void rule__AtomicExp__Group_2_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7692:1: ( rule__AtomicExp__Group_2_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7693:2: rule__AtomicExp__Group_2_1__1__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_2_1__1__Impl_in_rule__AtomicExp__Group_2_1__115770);
            rule__AtomicExp__Group_2_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_2_1__1"


    // $ANTLR start "rule__AtomicExp__Group_2_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7699:1: rule__AtomicExp__Group_2_1__1__Impl : ( ( rule__AtomicExp__IdAssignment_2_1_1 ) ) ;
    public final void rule__AtomicExp__Group_2_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7703:1: ( ( ( rule__AtomicExp__IdAssignment_2_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7704:1: ( ( rule__AtomicExp__IdAssignment_2_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7704:1: ( ( rule__AtomicExp__IdAssignment_2_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7705:1: ( rule__AtomicExp__IdAssignment_2_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getIdAssignment_2_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7706:1: ( rule__AtomicExp__IdAssignment_2_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7706:2: rule__AtomicExp__IdAssignment_2_1_1
            {
            pushFollow(FOLLOW_rule__AtomicExp__IdAssignment_2_1_1_in_rule__AtomicExp__Group_2_1__1__Impl15797);
            rule__AtomicExp__IdAssignment_2_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getIdAssignment_2_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_2_1__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_3__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7720:1: rule__AtomicExp__Group_3__0 : rule__AtomicExp__Group_3__0__Impl rule__AtomicExp__Group_3__1 ;
    public final void rule__AtomicExp__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7724:1: ( rule__AtomicExp__Group_3__0__Impl rule__AtomicExp__Group_3__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7725:2: rule__AtomicExp__Group_3__0__Impl rule__AtomicExp__Group_3__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_3__0__Impl_in_rule__AtomicExp__Group_3__015831);
            rule__AtomicExp__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_3__1_in_rule__AtomicExp__Group_3__015834);
            rule__AtomicExp__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__0"


    // $ANTLR start "rule__AtomicExp__Group_3__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7732:1: rule__AtomicExp__Group_3__0__Impl : ( ( rule__AtomicExp__NameAssignment_3_0 ) ) ;
    public final void rule__AtomicExp__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7736:1: ( ( ( rule__AtomicExp__NameAssignment_3_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7737:1: ( ( rule__AtomicExp__NameAssignment_3_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7737:1: ( ( rule__AtomicExp__NameAssignment_3_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7738:1: ( rule__AtomicExp__NameAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameAssignment_3_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7739:1: ( rule__AtomicExp__NameAssignment_3_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7739:2: rule__AtomicExp__NameAssignment_3_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__NameAssignment_3_0_in_rule__AtomicExp__Group_3__0__Impl15861);
            rule__AtomicExp__NameAssignment_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameAssignment_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_3__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7749:1: rule__AtomicExp__Group_3__1 : rule__AtomicExp__Group_3__1__Impl rule__AtomicExp__Group_3__2 ;
    public final void rule__AtomicExp__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7753:1: ( rule__AtomicExp__Group_3__1__Impl rule__AtomicExp__Group_3__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7754:2: rule__AtomicExp__Group_3__1__Impl rule__AtomicExp__Group_3__2
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_3__1__Impl_in_rule__AtomicExp__Group_3__115891);
            rule__AtomicExp__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_3__2_in_rule__AtomicExp__Group_3__115894);
            rule__AtomicExp__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__1"


    // $ANTLR start "rule__AtomicExp__Group_3__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7761:1: rule__AtomicExp__Group_3__1__Impl : ( '{' ) ;
    public final void rule__AtomicExp__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7765:1: ( ( '{' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7766:1: ( '{' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7766:1: ( '{' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7767:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getLeftCurlyBracketKeyword_3_1()); 
            }
            match(input,44,FOLLOW_44_in_rule__AtomicExp__Group_3__1__Impl15922); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getLeftCurlyBracketKeyword_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_3__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7780:1: rule__AtomicExp__Group_3__2 : rule__AtomicExp__Group_3__2__Impl rule__AtomicExp__Group_3__3 ;
    public final void rule__AtomicExp__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7784:1: ( rule__AtomicExp__Group_3__2__Impl rule__AtomicExp__Group_3__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7785:2: rule__AtomicExp__Group_3__2__Impl rule__AtomicExp__Group_3__3
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_3__2__Impl_in_rule__AtomicExp__Group_3__215953);
            rule__AtomicExp__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_3__3_in_rule__AtomicExp__Group_3__215956);
            rule__AtomicExp__Group_3__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__2"


    // $ANTLR start "rule__AtomicExp__Group_3__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7792:1: rule__AtomicExp__Group_3__2__Impl : ( ( rule__AtomicExp__FieldsAssignment_3_2 ) ) ;
    public final void rule__AtomicExp__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7796:1: ( ( ( rule__AtomicExp__FieldsAssignment_3_2 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7797:1: ( ( rule__AtomicExp__FieldsAssignment_3_2 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7797:1: ( ( rule__AtomicExp__FieldsAssignment_3_2 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7798:1: ( rule__AtomicExp__FieldsAssignment_3_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getFieldsAssignment_3_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7799:1: ( rule__AtomicExp__FieldsAssignment_3_2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7799:2: rule__AtomicExp__FieldsAssignment_3_2
            {
            pushFollow(FOLLOW_rule__AtomicExp__FieldsAssignment_3_2_in_rule__AtomicExp__Group_3__2__Impl15983);
            rule__AtomicExp__FieldsAssignment_3_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getFieldsAssignment_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__2__Impl"


    // $ANTLR start "rule__AtomicExp__Group_3__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7809:1: rule__AtomicExp__Group_3__3 : rule__AtomicExp__Group_3__3__Impl rule__AtomicExp__Group_3__4 ;
    public final void rule__AtomicExp__Group_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7813:1: ( rule__AtomicExp__Group_3__3__Impl rule__AtomicExp__Group_3__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7814:2: rule__AtomicExp__Group_3__3__Impl rule__AtomicExp__Group_3__4
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_3__3__Impl_in_rule__AtomicExp__Group_3__316013);
            rule__AtomicExp__Group_3__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_3__4_in_rule__AtomicExp__Group_3__316016);
            rule__AtomicExp__Group_3__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__3"


    // $ANTLR start "rule__AtomicExp__Group_3__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7821:1: rule__AtomicExp__Group_3__3__Impl : ( ( rule__AtomicExp__Group_3_3__0 )* ) ;
    public final void rule__AtomicExp__Group_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7825:1: ( ( ( rule__AtomicExp__Group_3_3__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7826:1: ( ( rule__AtomicExp__Group_3_3__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7826:1: ( ( rule__AtomicExp__Group_3_3__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7827:1: ( rule__AtomicExp__Group_3_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getGroup_3_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7828:1: ( rule__AtomicExp__Group_3_3__0 )*
            loop84:
            do {
                int alt84=2;
                int LA84_0 = input.LA(1);

                if ( (LA84_0==42) ) {
                    alt84=1;
                }


                switch (alt84) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7828:2: rule__AtomicExp__Group_3_3__0
            	    {
            	    pushFollow(FOLLOW_rule__AtomicExp__Group_3_3__0_in_rule__AtomicExp__Group_3__3__Impl16043);
            	    rule__AtomicExp__Group_3_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop84;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getGroup_3_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__3__Impl"


    // $ANTLR start "rule__AtomicExp__Group_3__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7838:1: rule__AtomicExp__Group_3__4 : rule__AtomicExp__Group_3__4__Impl ;
    public final void rule__AtomicExp__Group_3__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7842:1: ( rule__AtomicExp__Group_3__4__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7843:2: rule__AtomicExp__Group_3__4__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_3__4__Impl_in_rule__AtomicExp__Group_3__416074);
            rule__AtomicExp__Group_3__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__4"


    // $ANTLR start "rule__AtomicExp__Group_3__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7849:1: rule__AtomicExp__Group_3__4__Impl : ( '}' ) ;
    public final void rule__AtomicExp__Group_3__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7853:1: ( ( '}' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7854:1: ( '}' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7854:1: ( '}' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7855:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getRightCurlyBracketKeyword_3_4()); 
            }
            match(input,45,FOLLOW_45_in_rule__AtomicExp__Group_3__4__Impl16102); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getRightCurlyBracketKeyword_3_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3__4__Impl"


    // $ANTLR start "rule__AtomicExp__Group_3_3__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7878:1: rule__AtomicExp__Group_3_3__0 : rule__AtomicExp__Group_3_3__0__Impl rule__AtomicExp__Group_3_3__1 ;
    public final void rule__AtomicExp__Group_3_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7882:1: ( rule__AtomicExp__Group_3_3__0__Impl rule__AtomicExp__Group_3_3__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7883:2: rule__AtomicExp__Group_3_3__0__Impl rule__AtomicExp__Group_3_3__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_3_3__0__Impl_in_rule__AtomicExp__Group_3_3__016143);
            rule__AtomicExp__Group_3_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_3_3__1_in_rule__AtomicExp__Group_3_3__016146);
            rule__AtomicExp__Group_3_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3_3__0"


    // $ANTLR start "rule__AtomicExp__Group_3_3__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7890:1: rule__AtomicExp__Group_3_3__0__Impl : ( ',' ) ;
    public final void rule__AtomicExp__Group_3_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7894:1: ( ( ',' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7895:1: ( ',' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7895:1: ( ',' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7896:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getCommaKeyword_3_3_0()); 
            }
            match(input,42,FOLLOW_42_in_rule__AtomicExp__Group_3_3__0__Impl16174); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getCommaKeyword_3_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3_3__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_3_3__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7909:1: rule__AtomicExp__Group_3_3__1 : rule__AtomicExp__Group_3_3__1__Impl ;
    public final void rule__AtomicExp__Group_3_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7913:1: ( rule__AtomicExp__Group_3_3__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7914:2: rule__AtomicExp__Group_3_3__1__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_3_3__1__Impl_in_rule__AtomicExp__Group_3_3__116205);
            rule__AtomicExp__Group_3_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3_3__1"


    // $ANTLR start "rule__AtomicExp__Group_3_3__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7920:1: rule__AtomicExp__Group_3_3__1__Impl : ( ( rule__AtomicExp__FieldsAssignment_3_3_1 ) ) ;
    public final void rule__AtomicExp__Group_3_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7924:1: ( ( ( rule__AtomicExp__FieldsAssignment_3_3_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7925:1: ( ( rule__AtomicExp__FieldsAssignment_3_3_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7925:1: ( ( rule__AtomicExp__FieldsAssignment_3_3_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7926:1: ( rule__AtomicExp__FieldsAssignment_3_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getFieldsAssignment_3_3_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7927:1: ( rule__AtomicExp__FieldsAssignment_3_3_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7927:2: rule__AtomicExp__FieldsAssignment_3_3_1
            {
            pushFollow(FOLLOW_rule__AtomicExp__FieldsAssignment_3_3_1_in_rule__AtomicExp__Group_3_3__1__Impl16232);
            rule__AtomicExp__FieldsAssignment_3_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getFieldsAssignment_3_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_3_3__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_4__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7941:1: rule__AtomicExp__Group_4__0 : rule__AtomicExp__Group_4__0__Impl rule__AtomicExp__Group_4__1 ;
    public final void rule__AtomicExp__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7945:1: ( rule__AtomicExp__Group_4__0__Impl rule__AtomicExp__Group_4__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7946:2: rule__AtomicExp__Group_4__0__Impl rule__AtomicExp__Group_4__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_4__0__Impl_in_rule__AtomicExp__Group_4__016266);
            rule__AtomicExp__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_4__1_in_rule__AtomicExp__Group_4__016269);
            rule__AtomicExp__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_4__0"


    // $ANTLR start "rule__AtomicExp__Group_4__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7953:1: rule__AtomicExp__Group_4__0__Impl : ( '$' ) ;
    public final void rule__AtomicExp__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7957:1: ( ( '$' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7958:1: ( '$' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7958:1: ( '$' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7959:1: '$'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getDollarSignKeyword_4_0()); 
            }
            match(input,56,FOLLOW_56_in_rule__AtomicExp__Group_4__0__Impl16297); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getDollarSignKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_4__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_4__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7972:1: rule__AtomicExp__Group_4__1 : rule__AtomicExp__Group_4__1__Impl ;
    public final void rule__AtomicExp__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7976:1: ( rule__AtomicExp__Group_4__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7977:2: rule__AtomicExp__Group_4__1__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_4__1__Impl_in_rule__AtomicExp__Group_4__116328);
            rule__AtomicExp__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_4__1"


    // $ANTLR start "rule__AtomicExp__Group_4__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7983:1: rule__AtomicExp__Group_4__1__Impl : ( ( rule__AtomicExp__NameAssignment_4_1 ) ) ;
    public final void rule__AtomicExp__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7987:1: ( ( ( rule__AtomicExp__NameAssignment_4_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7988:1: ( ( rule__AtomicExp__NameAssignment_4_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7988:1: ( ( rule__AtomicExp__NameAssignment_4_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7989:1: ( rule__AtomicExp__NameAssignment_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameAssignment_4_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7990:1: ( rule__AtomicExp__NameAssignment_4_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7990:2: rule__AtomicExp__NameAssignment_4_1
            {
            pushFollow(FOLLOW_rule__AtomicExp__NameAssignment_4_1_in_rule__AtomicExp__Group_4__1__Impl16355);
            rule__AtomicExp__NameAssignment_4_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameAssignment_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_4__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_5__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8004:1: rule__AtomicExp__Group_5__0 : rule__AtomicExp__Group_5__0__Impl rule__AtomicExp__Group_5__1 ;
    public final void rule__AtomicExp__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8008:1: ( rule__AtomicExp__Group_5__0__Impl rule__AtomicExp__Group_5__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8009:2: rule__AtomicExp__Group_5__0__Impl rule__AtomicExp__Group_5__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_5__0__Impl_in_rule__AtomicExp__Group_5__016389);
            rule__AtomicExp__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_5__1_in_rule__AtomicExp__Group_5__016392);
            rule__AtomicExp__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5__0"


    // $ANTLR start "rule__AtomicExp__Group_5__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8016:1: rule__AtomicExp__Group_5__0__Impl : ( '(' ) ;
    public final void rule__AtomicExp__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8020:1: ( ( '(' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8021:1: ( '(' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8021:1: ( '(' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8022:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getLeftParenthesisKeyword_5_0()); 
            }
            match(input,46,FOLLOW_46_in_rule__AtomicExp__Group_5__0__Impl16420); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getLeftParenthesisKeyword_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_5__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8035:1: rule__AtomicExp__Group_5__1 : rule__AtomicExp__Group_5__1__Impl rule__AtomicExp__Group_5__2 ;
    public final void rule__AtomicExp__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8039:1: ( rule__AtomicExp__Group_5__1__Impl rule__AtomicExp__Group_5__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8040:2: rule__AtomicExp__Group_5__1__Impl rule__AtomicExp__Group_5__2
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_5__1__Impl_in_rule__AtomicExp__Group_5__116451);
            rule__AtomicExp__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_5__2_in_rule__AtomicExp__Group_5__116454);
            rule__AtomicExp__Group_5__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5__1"


    // $ANTLR start "rule__AtomicExp__Group_5__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8047:1: rule__AtomicExp__Group_5__1__Impl : ( ( rule__AtomicExp__ExprAssignment_5_1 ) ) ;
    public final void rule__AtomicExp__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8051:1: ( ( ( rule__AtomicExp__ExprAssignment_5_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8052:1: ( ( rule__AtomicExp__ExprAssignment_5_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8052:1: ( ( rule__AtomicExp__ExprAssignment_5_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8053:1: ( rule__AtomicExp__ExprAssignment_5_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getExprAssignment_5_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8054:1: ( rule__AtomicExp__ExprAssignment_5_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8054:2: rule__AtomicExp__ExprAssignment_5_1
            {
            pushFollow(FOLLOW_rule__AtomicExp__ExprAssignment_5_1_in_rule__AtomicExp__Group_5__1__Impl16481);
            rule__AtomicExp__ExprAssignment_5_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getExprAssignment_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_5__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8064:1: rule__AtomicExp__Group_5__2 : rule__AtomicExp__Group_5__2__Impl rule__AtomicExp__Group_5__3 ;
    public final void rule__AtomicExp__Group_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8068:1: ( rule__AtomicExp__Group_5__2__Impl rule__AtomicExp__Group_5__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8069:2: rule__AtomicExp__Group_5__2__Impl rule__AtomicExp__Group_5__3
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_5__2__Impl_in_rule__AtomicExp__Group_5__216511);
            rule__AtomicExp__Group_5__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_5__3_in_rule__AtomicExp__Group_5__216514);
            rule__AtomicExp__Group_5__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5__2"


    // $ANTLR start "rule__AtomicExp__Group_5__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8076:1: rule__AtomicExp__Group_5__2__Impl : ( ')' ) ;
    public final void rule__AtomicExp__Group_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8080:1: ( ( ')' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8081:1: ( ')' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8081:1: ( ')' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8082:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getRightParenthesisKeyword_5_2()); 
            }
            match(input,47,FOLLOW_47_in_rule__AtomicExp__Group_5__2__Impl16542); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getRightParenthesisKeyword_5_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5__2__Impl"


    // $ANTLR start "rule__AtomicExp__Group_5__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8095:1: rule__AtomicExp__Group_5__3 : rule__AtomicExp__Group_5__3__Impl ;
    public final void rule__AtomicExp__Group_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8099:1: ( rule__AtomicExp__Group_5__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8100:2: rule__AtomicExp__Group_5__3__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_5__3__Impl_in_rule__AtomicExp__Group_5__316573);
            rule__AtomicExp__Group_5__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5__3"


    // $ANTLR start "rule__AtomicExp__Group_5__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8106:1: rule__AtomicExp__Group_5__3__Impl : ( ( rule__AtomicExp__Group_5_3__0 )* ) ;
    public final void rule__AtomicExp__Group_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8110:1: ( ( ( rule__AtomicExp__Group_5_3__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8111:1: ( ( rule__AtomicExp__Group_5_3__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8111:1: ( ( rule__AtomicExp__Group_5_3__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8112:1: ( rule__AtomicExp__Group_5_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getGroup_5_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8113:1: ( rule__AtomicExp__Group_5_3__0 )*
            loop85:
            do {
                int alt85=2;
                int LA85_0 = input.LA(1);

                if ( (LA85_0==RULE_DOT) ) {
                    int LA85_2 = input.LA(2);

                    if ( (LA85_2==RULE_ID) ) {
                        int LA85_3 = input.LA(3);

                        if ( (synpred110_InternalGDSL()) ) {
                            alt85=1;
                        }


                    }
                    else if ( (LA85_2==RULE_S) ) {
                        int LA85_4 = input.LA(3);

                        if ( (synpred110_InternalGDSL()) ) {
                            alt85=1;
                        }


                    }


                }


                switch (alt85) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8113:2: rule__AtomicExp__Group_5_3__0
            	    {
            	    pushFollow(FOLLOW_rule__AtomicExp__Group_5_3__0_in_rule__AtomicExp__Group_5__3__Impl16600);
            	    rule__AtomicExp__Group_5_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop85;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getGroup_5_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5__3__Impl"


    // $ANTLR start "rule__AtomicExp__Group_5_3__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8131:1: rule__AtomicExp__Group_5_3__0 : rule__AtomicExp__Group_5_3__0__Impl rule__AtomicExp__Group_5_3__1 ;
    public final void rule__AtomicExp__Group_5_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8135:1: ( rule__AtomicExp__Group_5_3__0__Impl rule__AtomicExp__Group_5_3__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8136:2: rule__AtomicExp__Group_5_3__0__Impl rule__AtomicExp__Group_5_3__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_5_3__0__Impl_in_rule__AtomicExp__Group_5_3__016639);
            rule__AtomicExp__Group_5_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_5_3__1_in_rule__AtomicExp__Group_5_3__016642);
            rule__AtomicExp__Group_5_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5_3__0"


    // $ANTLR start "rule__AtomicExp__Group_5_3__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8143:1: rule__AtomicExp__Group_5_3__0__Impl : ( ( RULE_DOT ) ) ;
    public final void rule__AtomicExp__Group_5_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8147:1: ( ( ( RULE_DOT ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8148:1: ( ( RULE_DOT ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8148:1: ( ( RULE_DOT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8149:1: ( RULE_DOT )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getDOTTerminalRuleCall_5_3_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8150:1: ( RULE_DOT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8150:3: RULE_DOT
            {
            match(input,RULE_DOT,FOLLOW_RULE_DOT_in_rule__AtomicExp__Group_5_3__0__Impl16670); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getDOTTerminalRuleCall_5_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5_3__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_5_3__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8160:1: rule__AtomicExp__Group_5_3__1 : rule__AtomicExp__Group_5_3__1__Impl ;
    public final void rule__AtomicExp__Group_5_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8164:1: ( rule__AtomicExp__Group_5_3__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8165:2: rule__AtomicExp__Group_5_3__1__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_5_3__1__Impl_in_rule__AtomicExp__Group_5_3__116700);
            rule__AtomicExp__Group_5_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5_3__1"


    // $ANTLR start "rule__AtomicExp__Group_5_3__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8171:1: rule__AtomicExp__Group_5_3__1__Impl : ( ( rule__AtomicExp__IdAssignment_5_3_1 ) ) ;
    public final void rule__AtomicExp__Group_5_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8175:1: ( ( ( rule__AtomicExp__IdAssignment_5_3_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8176:1: ( ( rule__AtomicExp__IdAssignment_5_3_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8176:1: ( ( rule__AtomicExp__IdAssignment_5_3_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8177:1: ( rule__AtomicExp__IdAssignment_5_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getIdAssignment_5_3_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8178:1: ( rule__AtomicExp__IdAssignment_5_3_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8178:2: rule__AtomicExp__IdAssignment_5_3_1
            {
            pushFollow(FOLLOW_rule__AtomicExp__IdAssignment_5_3_1_in_rule__AtomicExp__Group_5_3__1__Impl16727);
            rule__AtomicExp__IdAssignment_5_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getIdAssignment_5_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_5_3__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8192:1: rule__AtomicExp__Group_6__0 : rule__AtomicExp__Group_6__0__Impl rule__AtomicExp__Group_6__1 ;
    public final void rule__AtomicExp__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8196:1: ( rule__AtomicExp__Group_6__0__Impl rule__AtomicExp__Group_6__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8197:2: rule__AtomicExp__Group_6__0__Impl rule__AtomicExp__Group_6__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6__0__Impl_in_rule__AtomicExp__Group_6__016761);
            rule__AtomicExp__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_6__1_in_rule__AtomicExp__Group_6__016764);
            rule__AtomicExp__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6__0"


    // $ANTLR start "rule__AtomicExp__Group_6__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8204:1: rule__AtomicExp__Group_6__0__Impl : ( () ) ;
    public final void rule__AtomicExp__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8208:1: ( ( () ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8209:1: ( () )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8209:1: ( () )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8210:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getAtomicExpAction_6_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8211:1: ()
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8213:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getAtomicExpAction_6_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8223:1: rule__AtomicExp__Group_6__1 : rule__AtomicExp__Group_6__1__Impl rule__AtomicExp__Group_6__2 ;
    public final void rule__AtomicExp__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8227:1: ( rule__AtomicExp__Group_6__1__Impl rule__AtomicExp__Group_6__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8228:2: rule__AtomicExp__Group_6__1__Impl rule__AtomicExp__Group_6__2
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6__1__Impl_in_rule__AtomicExp__Group_6__116822);
            rule__AtomicExp__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_6__2_in_rule__AtomicExp__Group_6__116825);
            rule__AtomicExp__Group_6__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6__1"


    // $ANTLR start "rule__AtomicExp__Group_6__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8235:1: rule__AtomicExp__Group_6__1__Impl : ( '{' ) ;
    public final void rule__AtomicExp__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8239:1: ( ( '{' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8240:1: ( '{' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8240:1: ( '{' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8241:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getLeftCurlyBracketKeyword_6_1()); 
            }
            match(input,44,FOLLOW_44_in_rule__AtomicExp__Group_6__1__Impl16853); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getLeftCurlyBracketKeyword_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8254:1: rule__AtomicExp__Group_6__2 : rule__AtomicExp__Group_6__2__Impl rule__AtomicExp__Group_6__3 ;
    public final void rule__AtomicExp__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8258:1: ( rule__AtomicExp__Group_6__2__Impl rule__AtomicExp__Group_6__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8259:2: rule__AtomicExp__Group_6__2__Impl rule__AtomicExp__Group_6__3
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6__2__Impl_in_rule__AtomicExp__Group_6__216884);
            rule__AtomicExp__Group_6__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_6__3_in_rule__AtomicExp__Group_6__216887);
            rule__AtomicExp__Group_6__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6__2"


    // $ANTLR start "rule__AtomicExp__Group_6__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8266:1: rule__AtomicExp__Group_6__2__Impl : ( ( rule__AtomicExp__Group_6_2__0 )? ) ;
    public final void rule__AtomicExp__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8270:1: ( ( ( rule__AtomicExp__Group_6_2__0 )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8271:1: ( ( rule__AtomicExp__Group_6_2__0 )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8271:1: ( ( rule__AtomicExp__Group_6_2__0 )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8272:1: ( rule__AtomicExp__Group_6_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getGroup_6_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8273:1: ( rule__AtomicExp__Group_6_2__0 )?
            int alt86=2;
            int LA86_0 = input.LA(1);

            if ( ((LA86_0>=RULE_ID && LA86_0<=RULE_S)) ) {
                alt86=1;
            }
            switch (alt86) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8273:2: rule__AtomicExp__Group_6_2__0
                    {
                    pushFollow(FOLLOW_rule__AtomicExp__Group_6_2__0_in_rule__AtomicExp__Group_6__2__Impl16914);
                    rule__AtomicExp__Group_6_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getGroup_6_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6__2__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8283:1: rule__AtomicExp__Group_6__3 : rule__AtomicExp__Group_6__3__Impl ;
    public final void rule__AtomicExp__Group_6__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8287:1: ( rule__AtomicExp__Group_6__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8288:2: rule__AtomicExp__Group_6__3__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6__3__Impl_in_rule__AtomicExp__Group_6__316945);
            rule__AtomicExp__Group_6__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6__3"


    // $ANTLR start "rule__AtomicExp__Group_6__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8294:1: rule__AtomicExp__Group_6__3__Impl : ( '}' ) ;
    public final void rule__AtomicExp__Group_6__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8298:1: ( ( '}' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8299:1: ( '}' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8299:1: ( '}' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8300:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getRightCurlyBracketKeyword_6_3()); 
            }
            match(input,45,FOLLOW_45_in_rule__AtomicExp__Group_6__3__Impl16973); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getRightCurlyBracketKeyword_6_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6__3__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8321:1: rule__AtomicExp__Group_6_2__0 : rule__AtomicExp__Group_6_2__0__Impl rule__AtomicExp__Group_6_2__1 ;
    public final void rule__AtomicExp__Group_6_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8325:1: ( rule__AtomicExp__Group_6_2__0__Impl rule__AtomicExp__Group_6_2__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8326:2: rule__AtomicExp__Group_6_2__0__Impl rule__AtomicExp__Group_6_2__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2__0__Impl_in_rule__AtomicExp__Group_6_2__017012);
            rule__AtomicExp__Group_6_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2__1_in_rule__AtomicExp__Group_6_2__017015);
            rule__AtomicExp__Group_6_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2__0"


    // $ANTLR start "rule__AtomicExp__Group_6_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8333:1: rule__AtomicExp__Group_6_2__0__Impl : ( ( rule__AtomicExp__IdAssignment_6_2_0 ) ) ;
    public final void rule__AtomicExp__Group_6_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8337:1: ( ( ( rule__AtomicExp__IdAssignment_6_2_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8338:1: ( ( rule__AtomicExp__IdAssignment_6_2_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8338:1: ( ( rule__AtomicExp__IdAssignment_6_2_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8339:1: ( rule__AtomicExp__IdAssignment_6_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getIdAssignment_6_2_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8340:1: ( rule__AtomicExp__IdAssignment_6_2_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8340:2: rule__AtomicExp__IdAssignment_6_2_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__IdAssignment_6_2_0_in_rule__AtomicExp__Group_6_2__0__Impl17042);
            rule__AtomicExp__IdAssignment_6_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getIdAssignment_6_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6_2__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8350:1: rule__AtomicExp__Group_6_2__1 : rule__AtomicExp__Group_6_2__1__Impl rule__AtomicExp__Group_6_2__2 ;
    public final void rule__AtomicExp__Group_6_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8354:1: ( rule__AtomicExp__Group_6_2__1__Impl rule__AtomicExp__Group_6_2__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8355:2: rule__AtomicExp__Group_6_2__1__Impl rule__AtomicExp__Group_6_2__2
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2__1__Impl_in_rule__AtomicExp__Group_6_2__117072);
            rule__AtomicExp__Group_6_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2__2_in_rule__AtomicExp__Group_6_2__117075);
            rule__AtomicExp__Group_6_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2__1"


    // $ANTLR start "rule__AtomicExp__Group_6_2__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8362:1: rule__AtomicExp__Group_6_2__1__Impl : ( '=' ) ;
    public final void rule__AtomicExp__Group_6_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8366:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8367:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8367:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8368:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getEqualsSignKeyword_6_2_1()); 
            }
            match(input,37,FOLLOW_37_in_rule__AtomicExp__Group_6_2__1__Impl17103); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getEqualsSignKeyword_6_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6_2__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8381:1: rule__AtomicExp__Group_6_2__2 : rule__AtomicExp__Group_6_2__2__Impl rule__AtomicExp__Group_6_2__3 ;
    public final void rule__AtomicExp__Group_6_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8385:1: ( rule__AtomicExp__Group_6_2__2__Impl rule__AtomicExp__Group_6_2__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8386:2: rule__AtomicExp__Group_6_2__2__Impl rule__AtomicExp__Group_6_2__3
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2__2__Impl_in_rule__AtomicExp__Group_6_2__217134);
            rule__AtomicExp__Group_6_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2__3_in_rule__AtomicExp__Group_6_2__217137);
            rule__AtomicExp__Group_6_2__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2__2"


    // $ANTLR start "rule__AtomicExp__Group_6_2__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8393:1: rule__AtomicExp__Group_6_2__2__Impl : ( ( rule__AtomicExp__ExpsAssignment_6_2_2 ) ) ;
    public final void rule__AtomicExp__Group_6_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8397:1: ( ( ( rule__AtomicExp__ExpsAssignment_6_2_2 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8398:1: ( ( rule__AtomicExp__ExpsAssignment_6_2_2 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8398:1: ( ( rule__AtomicExp__ExpsAssignment_6_2_2 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8399:1: ( rule__AtomicExp__ExpsAssignment_6_2_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getExpsAssignment_6_2_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8400:1: ( rule__AtomicExp__ExpsAssignment_6_2_2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8400:2: rule__AtomicExp__ExpsAssignment_6_2_2
            {
            pushFollow(FOLLOW_rule__AtomicExp__ExpsAssignment_6_2_2_in_rule__AtomicExp__Group_6_2__2__Impl17164);
            rule__AtomicExp__ExpsAssignment_6_2_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getExpsAssignment_6_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2__2__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6_2__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8410:1: rule__AtomicExp__Group_6_2__3 : rule__AtomicExp__Group_6_2__3__Impl ;
    public final void rule__AtomicExp__Group_6_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8414:1: ( rule__AtomicExp__Group_6_2__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8415:2: rule__AtomicExp__Group_6_2__3__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2__3__Impl_in_rule__AtomicExp__Group_6_2__317194);
            rule__AtomicExp__Group_6_2__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2__3"


    // $ANTLR start "rule__AtomicExp__Group_6_2__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8421:1: rule__AtomicExp__Group_6_2__3__Impl : ( ( rule__AtomicExp__Group_6_2_3__0 )* ) ;
    public final void rule__AtomicExp__Group_6_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8425:1: ( ( ( rule__AtomicExp__Group_6_2_3__0 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8426:1: ( ( rule__AtomicExp__Group_6_2_3__0 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8426:1: ( ( rule__AtomicExp__Group_6_2_3__0 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8427:1: ( rule__AtomicExp__Group_6_2_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getGroup_6_2_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8428:1: ( rule__AtomicExp__Group_6_2_3__0 )*
            loop87:
            do {
                int alt87=2;
                int LA87_0 = input.LA(1);

                if ( (LA87_0==42) ) {
                    alt87=1;
                }


                switch (alt87) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8428:2: rule__AtomicExp__Group_6_2_3__0
            	    {
            	    pushFollow(FOLLOW_rule__AtomicExp__Group_6_2_3__0_in_rule__AtomicExp__Group_6_2__3__Impl17221);
            	    rule__AtomicExp__Group_6_2_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop87;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getGroup_6_2_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2__3__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6_2_3__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8446:1: rule__AtomicExp__Group_6_2_3__0 : rule__AtomicExp__Group_6_2_3__0__Impl rule__AtomicExp__Group_6_2_3__1 ;
    public final void rule__AtomicExp__Group_6_2_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8450:1: ( rule__AtomicExp__Group_6_2_3__0__Impl rule__AtomicExp__Group_6_2_3__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8451:2: rule__AtomicExp__Group_6_2_3__0__Impl rule__AtomicExp__Group_6_2_3__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2_3__0__Impl_in_rule__AtomicExp__Group_6_2_3__017260);
            rule__AtomicExp__Group_6_2_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2_3__1_in_rule__AtomicExp__Group_6_2_3__017263);
            rule__AtomicExp__Group_6_2_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2_3__0"


    // $ANTLR start "rule__AtomicExp__Group_6_2_3__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8458:1: rule__AtomicExp__Group_6_2_3__0__Impl : ( ',' ) ;
    public final void rule__AtomicExp__Group_6_2_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8462:1: ( ( ',' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8463:1: ( ',' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8463:1: ( ',' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8464:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getCommaKeyword_6_2_3_0()); 
            }
            match(input,42,FOLLOW_42_in_rule__AtomicExp__Group_6_2_3__0__Impl17291); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getCommaKeyword_6_2_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2_3__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6_2_3__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8477:1: rule__AtomicExp__Group_6_2_3__1 : rule__AtomicExp__Group_6_2_3__1__Impl rule__AtomicExp__Group_6_2_3__2 ;
    public final void rule__AtomicExp__Group_6_2_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8481:1: ( rule__AtomicExp__Group_6_2_3__1__Impl rule__AtomicExp__Group_6_2_3__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8482:2: rule__AtomicExp__Group_6_2_3__1__Impl rule__AtomicExp__Group_6_2_3__2
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2_3__1__Impl_in_rule__AtomicExp__Group_6_2_3__117322);
            rule__AtomicExp__Group_6_2_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2_3__2_in_rule__AtomicExp__Group_6_2_3__117325);
            rule__AtomicExp__Group_6_2_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2_3__1"


    // $ANTLR start "rule__AtomicExp__Group_6_2_3__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8489:1: rule__AtomicExp__Group_6_2_3__1__Impl : ( ( rule__AtomicExp__IdAssignment_6_2_3_1 ) ) ;
    public final void rule__AtomicExp__Group_6_2_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8493:1: ( ( ( rule__AtomicExp__IdAssignment_6_2_3_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8494:1: ( ( rule__AtomicExp__IdAssignment_6_2_3_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8494:1: ( ( rule__AtomicExp__IdAssignment_6_2_3_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8495:1: ( rule__AtomicExp__IdAssignment_6_2_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getIdAssignment_6_2_3_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8496:1: ( rule__AtomicExp__IdAssignment_6_2_3_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8496:2: rule__AtomicExp__IdAssignment_6_2_3_1
            {
            pushFollow(FOLLOW_rule__AtomicExp__IdAssignment_6_2_3_1_in_rule__AtomicExp__Group_6_2_3__1__Impl17352);
            rule__AtomicExp__IdAssignment_6_2_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getIdAssignment_6_2_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2_3__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6_2_3__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8506:1: rule__AtomicExp__Group_6_2_3__2 : rule__AtomicExp__Group_6_2_3__2__Impl rule__AtomicExp__Group_6_2_3__3 ;
    public final void rule__AtomicExp__Group_6_2_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8510:1: ( rule__AtomicExp__Group_6_2_3__2__Impl rule__AtomicExp__Group_6_2_3__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8511:2: rule__AtomicExp__Group_6_2_3__2__Impl rule__AtomicExp__Group_6_2_3__3
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2_3__2__Impl_in_rule__AtomicExp__Group_6_2_3__217382);
            rule__AtomicExp__Group_6_2_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2_3__3_in_rule__AtomicExp__Group_6_2_3__217385);
            rule__AtomicExp__Group_6_2_3__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2_3__2"


    // $ANTLR start "rule__AtomicExp__Group_6_2_3__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8518:1: rule__AtomicExp__Group_6_2_3__2__Impl : ( '=' ) ;
    public final void rule__AtomicExp__Group_6_2_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8522:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8523:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8523:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8524:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getEqualsSignKeyword_6_2_3_2()); 
            }
            match(input,37,FOLLOW_37_in_rule__AtomicExp__Group_6_2_3__2__Impl17413); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getEqualsSignKeyword_6_2_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2_3__2__Impl"


    // $ANTLR start "rule__AtomicExp__Group_6_2_3__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8537:1: rule__AtomicExp__Group_6_2_3__3 : rule__AtomicExp__Group_6_2_3__3__Impl ;
    public final void rule__AtomicExp__Group_6_2_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8541:1: ( rule__AtomicExp__Group_6_2_3__3__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8542:2: rule__AtomicExp__Group_6_2_3__3__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_6_2_3__3__Impl_in_rule__AtomicExp__Group_6_2_3__317444);
            rule__AtomicExp__Group_6_2_3__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2_3__3"


    // $ANTLR start "rule__AtomicExp__Group_6_2_3__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8548:1: rule__AtomicExp__Group_6_2_3__3__Impl : ( ( rule__AtomicExp__ExpsAssignment_6_2_3_3 ) ) ;
    public final void rule__AtomicExp__Group_6_2_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8552:1: ( ( ( rule__AtomicExp__ExpsAssignment_6_2_3_3 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8553:1: ( ( rule__AtomicExp__ExpsAssignment_6_2_3_3 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8553:1: ( ( rule__AtomicExp__ExpsAssignment_6_2_3_3 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8554:1: ( rule__AtomicExp__ExpsAssignment_6_2_3_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getExpsAssignment_6_2_3_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8555:1: ( rule__AtomicExp__ExpsAssignment_6_2_3_3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8555:2: rule__AtomicExp__ExpsAssignment_6_2_3_3
            {
            pushFollow(FOLLOW_rule__AtomicExp__ExpsAssignment_6_2_3_3_in_rule__AtomicExp__Group_6_2_3__3__Impl17471);
            rule__AtomicExp__ExpsAssignment_6_2_3_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getExpsAssignment_6_2_3_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_6_2_3__3__Impl"


    // $ANTLR start "rule__AtomicExp__Group_7__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8573:1: rule__AtomicExp__Group_7__0 : rule__AtomicExp__Group_7__0__Impl rule__AtomicExp__Group_7__1 ;
    public final void rule__AtomicExp__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8577:1: ( rule__AtomicExp__Group_7__0__Impl rule__AtomicExp__Group_7__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8578:2: rule__AtomicExp__Group_7__0__Impl rule__AtomicExp__Group_7__1
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_7__0__Impl_in_rule__AtomicExp__Group_7__017509);
            rule__AtomicExp__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_7__1_in_rule__AtomicExp__Group_7__017512);
            rule__AtomicExp__Group_7__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__0"


    // $ANTLR start "rule__AtomicExp__Group_7__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8585:1: rule__AtomicExp__Group_7__0__Impl : ( ( rule__AtomicExp__NameAssignment_7_0 ) ) ;
    public final void rule__AtomicExp__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8589:1: ( ( ( rule__AtomicExp__NameAssignment_7_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8590:1: ( ( rule__AtomicExp__NameAssignment_7_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8590:1: ( ( rule__AtomicExp__NameAssignment_7_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8591:1: ( rule__AtomicExp__NameAssignment_7_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameAssignment_7_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8592:1: ( rule__AtomicExp__NameAssignment_7_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8592:2: rule__AtomicExp__NameAssignment_7_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__NameAssignment_7_0_in_rule__AtomicExp__Group_7__0__Impl17539);
            rule__AtomicExp__NameAssignment_7_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameAssignment_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__0__Impl"


    // $ANTLR start "rule__AtomicExp__Group_7__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8602:1: rule__AtomicExp__Group_7__1 : rule__AtomicExp__Group_7__1__Impl rule__AtomicExp__Group_7__2 ;
    public final void rule__AtomicExp__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8606:1: ( rule__AtomicExp__Group_7__1__Impl rule__AtomicExp__Group_7__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8607:2: rule__AtomicExp__Group_7__1__Impl rule__AtomicExp__Group_7__2
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_7__1__Impl_in_rule__AtomicExp__Group_7__117569);
            rule__AtomicExp__Group_7__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_7__2_in_rule__AtomicExp__Group_7__117572);
            rule__AtomicExp__Group_7__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__1"


    // $ANTLR start "rule__AtomicExp__Group_7__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8614:1: rule__AtomicExp__Group_7__1__Impl : ( ( ( rule__AtomicExp__ValDeclAssignment_7_1 ) ) ( ( rule__AtomicExp__ValDeclAssignment_7_1 )* ) ) ;
    public final void rule__AtomicExp__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8618:1: ( ( ( ( rule__AtomicExp__ValDeclAssignment_7_1 ) ) ( ( rule__AtomicExp__ValDeclAssignment_7_1 )* ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8619:1: ( ( ( rule__AtomicExp__ValDeclAssignment_7_1 ) ) ( ( rule__AtomicExp__ValDeclAssignment_7_1 )* ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8619:1: ( ( ( rule__AtomicExp__ValDeclAssignment_7_1 ) ) ( ( rule__AtomicExp__ValDeclAssignment_7_1 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8620:1: ( ( rule__AtomicExp__ValDeclAssignment_7_1 ) ) ( ( rule__AtomicExp__ValDeclAssignment_7_1 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8620:1: ( ( rule__AtomicExp__ValDeclAssignment_7_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8621:1: ( rule__AtomicExp__ValDeclAssignment_7_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getValDeclAssignment_7_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8622:1: ( rule__AtomicExp__ValDeclAssignment_7_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8622:2: rule__AtomicExp__ValDeclAssignment_7_1
            {
            pushFollow(FOLLOW_rule__AtomicExp__ValDeclAssignment_7_1_in_rule__AtomicExp__Group_7__1__Impl17601);
            rule__AtomicExp__ValDeclAssignment_7_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getValDeclAssignment_7_1()); 
            }

            }

            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8625:1: ( ( rule__AtomicExp__ValDeclAssignment_7_1 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8626:1: ( rule__AtomicExp__ValDeclAssignment_7_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getValDeclAssignment_7_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8627:1: ( rule__AtomicExp__ValDeclAssignment_7_1 )*
            loop88:
            do {
                int alt88=2;
                int LA88_0 = input.LA(1);

                if ( (LA88_0==39) ) {
                    alt88=1;
                }


                switch (alt88) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8627:2: rule__AtomicExp__ValDeclAssignment_7_1
            	    {
            	    pushFollow(FOLLOW_rule__AtomicExp__ValDeclAssignment_7_1_in_rule__AtomicExp__Group_7__1__Impl17613);
            	    rule__AtomicExp__ValDeclAssignment_7_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop88;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getValDeclAssignment_7_1()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__1__Impl"


    // $ANTLR start "rule__AtomicExp__Group_7__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8638:1: rule__AtomicExp__Group_7__2 : rule__AtomicExp__Group_7__2__Impl rule__AtomicExp__Group_7__3 ;
    public final void rule__AtomicExp__Group_7__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8642:1: ( rule__AtomicExp__Group_7__2__Impl rule__AtomicExp__Group_7__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8643:2: rule__AtomicExp__Group_7__2__Impl rule__AtomicExp__Group_7__3
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_7__2__Impl_in_rule__AtomicExp__Group_7__217646);
            rule__AtomicExp__Group_7__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_7__3_in_rule__AtomicExp__Group_7__217649);
            rule__AtomicExp__Group_7__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__2"


    // $ANTLR start "rule__AtomicExp__Group_7__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8650:1: rule__AtomicExp__Group_7__2__Impl : ( 'in' ) ;
    public final void rule__AtomicExp__Group_7__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8654:1: ( ( 'in' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8655:1: ( 'in' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8655:1: ( 'in' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8656:1: 'in'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getInKeyword_7_2()); 
            }
            match(input,57,FOLLOW_57_in_rule__AtomicExp__Group_7__2__Impl17677); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getInKeyword_7_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__2__Impl"


    // $ANTLR start "rule__AtomicExp__Group_7__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8669:1: rule__AtomicExp__Group_7__3 : rule__AtomicExp__Group_7__3__Impl rule__AtomicExp__Group_7__4 ;
    public final void rule__AtomicExp__Group_7__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8673:1: ( rule__AtomicExp__Group_7__3__Impl rule__AtomicExp__Group_7__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8674:2: rule__AtomicExp__Group_7__3__Impl rule__AtomicExp__Group_7__4
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_7__3__Impl_in_rule__AtomicExp__Group_7__317708);
            rule__AtomicExp__Group_7__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AtomicExp__Group_7__4_in_rule__AtomicExp__Group_7__317711);
            rule__AtomicExp__Group_7__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__3"


    // $ANTLR start "rule__AtomicExp__Group_7__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8681:1: rule__AtomicExp__Group_7__3__Impl : ( ( rule__AtomicExp__ExprAssignment_7_3 ) ) ;
    public final void rule__AtomicExp__Group_7__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8685:1: ( ( ( rule__AtomicExp__ExprAssignment_7_3 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8686:1: ( ( rule__AtomicExp__ExprAssignment_7_3 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8686:1: ( ( rule__AtomicExp__ExprAssignment_7_3 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8687:1: ( rule__AtomicExp__ExprAssignment_7_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getExprAssignment_7_3()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8688:1: ( rule__AtomicExp__ExprAssignment_7_3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8688:2: rule__AtomicExp__ExprAssignment_7_3
            {
            pushFollow(FOLLOW_rule__AtomicExp__ExprAssignment_7_3_in_rule__AtomicExp__Group_7__3__Impl17738);
            rule__AtomicExp__ExprAssignment_7_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getExprAssignment_7_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__3__Impl"


    // $ANTLR start "rule__AtomicExp__Group_7__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8698:1: rule__AtomicExp__Group_7__4 : rule__AtomicExp__Group_7__4__Impl ;
    public final void rule__AtomicExp__Group_7__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8702:1: ( rule__AtomicExp__Group_7__4__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8703:2: rule__AtomicExp__Group_7__4__Impl
            {
            pushFollow(FOLLOW_rule__AtomicExp__Group_7__4__Impl_in_rule__AtomicExp__Group_7__417768);
            rule__AtomicExp__Group_7__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__4"


    // $ANTLR start "rule__AtomicExp__Group_7__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8709:1: rule__AtomicExp__Group_7__4__Impl : ( 'end' ) ;
    public final void rule__AtomicExp__Group_7__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8713:1: ( ( 'end' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8714:1: ( 'end' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8714:1: ( 'end' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8715:1: 'end'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getEndKeyword_7_4()); 
            }
            match(input,50,FOLLOW_50_in_rule__AtomicExp__Group_7__4__Impl17796); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getEndKeyword_7_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__Group_7__4__Impl"


    // $ANTLR start "rule__Field__Group_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8738:1: rule__Field__Group_0__0 : rule__Field__Group_0__0__Impl rule__Field__Group_0__1 ;
    public final void rule__Field__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8742:1: ( rule__Field__Group_0__0__Impl rule__Field__Group_0__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8743:2: rule__Field__Group_0__0__Impl rule__Field__Group_0__1
            {
            pushFollow(FOLLOW_rule__Field__Group_0__0__Impl_in_rule__Field__Group_0__017837);
            rule__Field__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Field__Group_0__1_in_rule__Field__Group_0__017840);
            rule__Field__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_0__0"


    // $ANTLR start "rule__Field__Group_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8750:1: rule__Field__Group_0__0__Impl : ( ( rule__Field__NameAssignment_0_0 ) ) ;
    public final void rule__Field__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8754:1: ( ( ( rule__Field__NameAssignment_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8755:1: ( ( rule__Field__NameAssignment_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8755:1: ( ( rule__Field__NameAssignment_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8756:1: ( rule__Field__NameAssignment_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldAccess().getNameAssignment_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8757:1: ( rule__Field__NameAssignment_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8757:2: rule__Field__NameAssignment_0_0
            {
            pushFollow(FOLLOW_rule__Field__NameAssignment_0_0_in_rule__Field__Group_0__0__Impl17867);
            rule__Field__NameAssignment_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldAccess().getNameAssignment_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_0__0__Impl"


    // $ANTLR start "rule__Field__Group_0__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8767:1: rule__Field__Group_0__1 : rule__Field__Group_0__1__Impl rule__Field__Group_0__2 ;
    public final void rule__Field__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8771:1: ( rule__Field__Group_0__1__Impl rule__Field__Group_0__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8772:2: rule__Field__Group_0__1__Impl rule__Field__Group_0__2
            {
            pushFollow(FOLLOW_rule__Field__Group_0__1__Impl_in_rule__Field__Group_0__117897);
            rule__Field__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Field__Group_0__2_in_rule__Field__Group_0__117900);
            rule__Field__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_0__1"


    // $ANTLR start "rule__Field__Group_0__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8779:1: rule__Field__Group_0__1__Impl : ( '=' ) ;
    public final void rule__Field__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8783:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8784:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8784:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8785:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldAccess().getEqualsSignKeyword_0_1()); 
            }
            match(input,37,FOLLOW_37_in_rule__Field__Group_0__1__Impl17928); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldAccess().getEqualsSignKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_0__1__Impl"


    // $ANTLR start "rule__Field__Group_0__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8798:1: rule__Field__Group_0__2 : rule__Field__Group_0__2__Impl ;
    public final void rule__Field__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8802:1: ( rule__Field__Group_0__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8803:2: rule__Field__Group_0__2__Impl
            {
            pushFollow(FOLLOW_rule__Field__Group_0__2__Impl_in_rule__Field__Group_0__217959);
            rule__Field__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_0__2"


    // $ANTLR start "rule__Field__Group_0__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8809:1: rule__Field__Group_0__2__Impl : ( ( rule__Field__ExpAssignment_0_2 ) ) ;
    public final void rule__Field__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8813:1: ( ( ( rule__Field__ExpAssignment_0_2 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8814:1: ( ( rule__Field__ExpAssignment_0_2 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8814:1: ( ( rule__Field__ExpAssignment_0_2 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8815:1: ( rule__Field__ExpAssignment_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldAccess().getExpAssignment_0_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8816:1: ( rule__Field__ExpAssignment_0_2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8816:2: rule__Field__ExpAssignment_0_2
            {
            pushFollow(FOLLOW_rule__Field__ExpAssignment_0_2_in_rule__Field__Group_0__2__Impl17986);
            rule__Field__ExpAssignment_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldAccess().getExpAssignment_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_0__2__Impl"


    // $ANTLR start "rule__Field__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8832:1: rule__Field__Group_1__0 : rule__Field__Group_1__0__Impl rule__Field__Group_1__1 ;
    public final void rule__Field__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8836:1: ( rule__Field__Group_1__0__Impl rule__Field__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8837:2: rule__Field__Group_1__0__Impl rule__Field__Group_1__1
            {
            pushFollow(FOLLOW_rule__Field__Group_1__0__Impl_in_rule__Field__Group_1__018022);
            rule__Field__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Field__Group_1__1_in_rule__Field__Group_1__018025);
            rule__Field__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_1__0"


    // $ANTLR start "rule__Field__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8844:1: rule__Field__Group_1__0__Impl : ( '~' ) ;
    public final void rule__Field__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8848:1: ( ( '~' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8849:1: ( '~' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8849:1: ( '~' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8850:1: '~'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldAccess().getTildeKeyword_1_0()); 
            }
            match(input,55,FOLLOW_55_in_rule__Field__Group_1__0__Impl18053); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldAccess().getTildeKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_1__0__Impl"


    // $ANTLR start "rule__Field__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8863:1: rule__Field__Group_1__1 : rule__Field__Group_1__1__Impl ;
    public final void rule__Field__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8867:1: ( rule__Field__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8868:2: rule__Field__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Field__Group_1__1__Impl_in_rule__Field__Group_1__118084);
            rule__Field__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_1__1"


    // $ANTLR start "rule__Field__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8874:1: rule__Field__Group_1__1__Impl : ( ( rule__Field__NameAssignment_1_1 ) ) ;
    public final void rule__Field__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8878:1: ( ( ( rule__Field__NameAssignment_1_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8879:1: ( ( rule__Field__NameAssignment_1_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8879:1: ( ( rule__Field__NameAssignment_1_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8880:1: ( rule__Field__NameAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldAccess().getNameAssignment_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8881:1: ( rule__Field__NameAssignment_1_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8881:2: rule__Field__NameAssignment_1_1
            {
            pushFollow(FOLLOW_rule__Field__NameAssignment_1_1_in_rule__Field__Group_1__1__Impl18111);
            rule__Field__NameAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldAccess().getNameAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__Group_1__1__Impl"


    // $ANTLR start "rule__ValueDecl__Group__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8895:1: rule__ValueDecl__Group__0 : rule__ValueDecl__Group__0__Impl rule__ValueDecl__Group__1 ;
    public final void rule__ValueDecl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8899:1: ( rule__ValueDecl__Group__0__Impl rule__ValueDecl__Group__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8900:2: rule__ValueDecl__Group__0__Impl rule__ValueDecl__Group__1
            {
            pushFollow(FOLLOW_rule__ValueDecl__Group__0__Impl_in_rule__ValueDecl__Group__018145);
            rule__ValueDecl__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ValueDecl__Group__1_in_rule__ValueDecl__Group__018148);
            rule__ValueDecl__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__0"


    // $ANTLR start "rule__ValueDecl__Group__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8907:1: rule__ValueDecl__Group__0__Impl : ( 'val' ) ;
    public final void rule__ValueDecl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8911:1: ( ( 'val' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8912:1: ( 'val' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8912:1: ( 'val' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8913:1: 'val'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getValKeyword_0()); 
            }
            match(input,39,FOLLOW_39_in_rule__ValueDecl__Group__0__Impl18176); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getValKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__0__Impl"


    // $ANTLR start "rule__ValueDecl__Group__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8926:1: rule__ValueDecl__Group__1 : rule__ValueDecl__Group__1__Impl rule__ValueDecl__Group__2 ;
    public final void rule__ValueDecl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8930:1: ( rule__ValueDecl__Group__1__Impl rule__ValueDecl__Group__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8931:2: rule__ValueDecl__Group__1__Impl rule__ValueDecl__Group__2
            {
            pushFollow(FOLLOW_rule__ValueDecl__Group__1__Impl_in_rule__ValueDecl__Group__118207);
            rule__ValueDecl__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ValueDecl__Group__2_in_rule__ValueDecl__Group__118210);
            rule__ValueDecl__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__1"


    // $ANTLR start "rule__ValueDecl__Group__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8938:1: rule__ValueDecl__Group__1__Impl : ( ( rule__ValueDecl__Alternatives_1 ) ) ;
    public final void rule__ValueDecl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8942:1: ( ( ( rule__ValueDecl__Alternatives_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8943:1: ( ( rule__ValueDecl__Alternatives_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8943:1: ( ( rule__ValueDecl__Alternatives_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8944:1: ( rule__ValueDecl__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getAlternatives_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8945:1: ( rule__ValueDecl__Alternatives_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8945:2: rule__ValueDecl__Alternatives_1
            {
            pushFollow(FOLLOW_rule__ValueDecl__Alternatives_1_in_rule__ValueDecl__Group__1__Impl18237);
            rule__ValueDecl__Alternatives_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__1__Impl"


    // $ANTLR start "rule__ValueDecl__Group__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8955:1: rule__ValueDecl__Group__2 : rule__ValueDecl__Group__2__Impl rule__ValueDecl__Group__3 ;
    public final void rule__ValueDecl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8959:1: ( rule__ValueDecl__Group__2__Impl rule__ValueDecl__Group__3 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8960:2: rule__ValueDecl__Group__2__Impl rule__ValueDecl__Group__3
            {
            pushFollow(FOLLOW_rule__ValueDecl__Group__2__Impl_in_rule__ValueDecl__Group__218267);
            rule__ValueDecl__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ValueDecl__Group__3_in_rule__ValueDecl__Group__218270);
            rule__ValueDecl__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__2"


    // $ANTLR start "rule__ValueDecl__Group__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8967:1: rule__ValueDecl__Group__2__Impl : ( ( rule__ValueDecl__IdsAssignment_2 )* ) ;
    public final void rule__ValueDecl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8971:1: ( ( ( rule__ValueDecl__IdsAssignment_2 )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8972:1: ( ( rule__ValueDecl__IdsAssignment_2 )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8972:1: ( ( rule__ValueDecl__IdsAssignment_2 )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8973:1: ( rule__ValueDecl__IdsAssignment_2 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getIdsAssignment_2()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8974:1: ( rule__ValueDecl__IdsAssignment_2 )*
            loop89:
            do {
                int alt89=2;
                int LA89_0 = input.LA(1);

                if ( ((LA89_0>=RULE_ID && LA89_0<=RULE_S)) ) {
                    alt89=1;
                }


                switch (alt89) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8974:2: rule__ValueDecl__IdsAssignment_2
            	    {
            	    pushFollow(FOLLOW_rule__ValueDecl__IdsAssignment_2_in_rule__ValueDecl__Group__2__Impl18297);
            	    rule__ValueDecl__IdsAssignment_2();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop89;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getIdsAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__2__Impl"


    // $ANTLR start "rule__ValueDecl__Group__3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8984:1: rule__ValueDecl__Group__3 : rule__ValueDecl__Group__3__Impl rule__ValueDecl__Group__4 ;
    public final void rule__ValueDecl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8988:1: ( rule__ValueDecl__Group__3__Impl rule__ValueDecl__Group__4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8989:2: rule__ValueDecl__Group__3__Impl rule__ValueDecl__Group__4
            {
            pushFollow(FOLLOW_rule__ValueDecl__Group__3__Impl_in_rule__ValueDecl__Group__318328);
            rule__ValueDecl__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ValueDecl__Group__4_in_rule__ValueDecl__Group__318331);
            rule__ValueDecl__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__3"


    // $ANTLR start "rule__ValueDecl__Group__3__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8996:1: rule__ValueDecl__Group__3__Impl : ( '=' ) ;
    public final void rule__ValueDecl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9000:1: ( ( '=' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9001:1: ( '=' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9001:1: ( '=' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9002:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getEqualsSignKeyword_3()); 
            }
            match(input,37,FOLLOW_37_in_rule__ValueDecl__Group__3__Impl18359); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getEqualsSignKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__3__Impl"


    // $ANTLR start "rule__ValueDecl__Group__4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9015:1: rule__ValueDecl__Group__4 : rule__ValueDecl__Group__4__Impl ;
    public final void rule__ValueDecl__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9019:1: ( rule__ValueDecl__Group__4__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9020:2: rule__ValueDecl__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__ValueDecl__Group__4__Impl_in_rule__ValueDecl__Group__418390);
            rule__ValueDecl__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__4"


    // $ANTLR start "rule__ValueDecl__Group__4__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9026:1: rule__ValueDecl__Group__4__Impl : ( ( rule__ValueDecl__ExpAssignment_4 ) ) ;
    public final void rule__ValueDecl__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9030:1: ( ( ( rule__ValueDecl__ExpAssignment_4 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9031:1: ( ( rule__ValueDecl__ExpAssignment_4 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9031:1: ( ( rule__ValueDecl__ExpAssignment_4 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9032:1: ( rule__ValueDecl__ExpAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getExpAssignment_4()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9033:1: ( rule__ValueDecl__ExpAssignment_4 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9033:2: rule__ValueDecl__ExpAssignment_4
            {
            pushFollow(FOLLOW_rule__ValueDecl__ExpAssignment_4_in_rule__ValueDecl__Group__4__Impl18417);
            rule__ValueDecl__ExpAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getExpAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__Group__4__Impl"


    // $ANTLR start "rule__PAT__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9053:1: rule__PAT__Group_1__0 : rule__PAT__Group_1__0__Impl ;
    public final void rule__PAT__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9057:1: ( rule__PAT__Group_1__0__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9058:2: rule__PAT__Group_1__0__Impl
            {
            pushFollow(FOLLOW_rule__PAT__Group_1__0__Impl_in_rule__PAT__Group_1__018457);
            rule__PAT__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_1__0"


    // $ANTLR start "rule__PAT__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9064:1: rule__PAT__Group_1__0__Impl : ( ( rule__PAT__IntAssignment_1_0 ) ) ;
    public final void rule__PAT__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9068:1: ( ( ( rule__PAT__IntAssignment_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9069:1: ( ( rule__PAT__IntAssignment_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9069:1: ( ( rule__PAT__IntAssignment_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9070:1: ( rule__PAT__IntAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getIntAssignment_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9071:1: ( rule__PAT__IntAssignment_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9071:2: rule__PAT__IntAssignment_1_0
            {
            pushFollow(FOLLOW_rule__PAT__IntAssignment_1_0_in_rule__PAT__Group_1__0__Impl18484);
            rule__PAT__IntAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getIntAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_1__0__Impl"


    // $ANTLR start "rule__PAT__Group_2__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9083:1: rule__PAT__Group_2__0 : rule__PAT__Group_2__0__Impl ;
    public final void rule__PAT__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9087:1: ( rule__PAT__Group_2__0__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9088:2: rule__PAT__Group_2__0__Impl
            {
            pushFollow(FOLLOW_rule__PAT__Group_2__0__Impl_in_rule__PAT__Group_2__018516);
            rule__PAT__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_2__0"


    // $ANTLR start "rule__PAT__Group_2__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9094:1: rule__PAT__Group_2__0__Impl : ( ( rule__PAT__Group_2_0__0 ) ) ;
    public final void rule__PAT__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9098:1: ( ( ( rule__PAT__Group_2_0__0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9099:1: ( ( rule__PAT__Group_2_0__0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9099:1: ( ( rule__PAT__Group_2_0__0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9100:1: ( rule__PAT__Group_2_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getGroup_2_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9101:1: ( rule__PAT__Group_2_0__0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9101:2: rule__PAT__Group_2_0__0
            {
            pushFollow(FOLLOW_rule__PAT__Group_2_0__0_in_rule__PAT__Group_2__0__Impl18543);
            rule__PAT__Group_2_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getGroup_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_2__0__Impl"


    // $ANTLR start "rule__PAT__Group_2_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9113:1: rule__PAT__Group_2_0__0 : rule__PAT__Group_2_0__0__Impl rule__PAT__Group_2_0__1 ;
    public final void rule__PAT__Group_2_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9117:1: ( rule__PAT__Group_2_0__0__Impl rule__PAT__Group_2_0__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9118:2: rule__PAT__Group_2_0__0__Impl rule__PAT__Group_2_0__1
            {
            pushFollow(FOLLOW_rule__PAT__Group_2_0__0__Impl_in_rule__PAT__Group_2_0__018575);
            rule__PAT__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PAT__Group_2_0__1_in_rule__PAT__Group_2_0__018578);
            rule__PAT__Group_2_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_2_0__0"


    // $ANTLR start "rule__PAT__Group_2_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9125:1: rule__PAT__Group_2_0__0__Impl : ( ( rule__PAT__IdAssignment_2_0_0 ) ) ;
    public final void rule__PAT__Group_2_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9129:1: ( ( ( rule__PAT__IdAssignment_2_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9130:1: ( ( rule__PAT__IdAssignment_2_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9130:1: ( ( rule__PAT__IdAssignment_2_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9131:1: ( rule__PAT__IdAssignment_2_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getIdAssignment_2_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9132:1: ( rule__PAT__IdAssignment_2_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9132:2: rule__PAT__IdAssignment_2_0_0
            {
            pushFollow(FOLLOW_rule__PAT__IdAssignment_2_0_0_in_rule__PAT__Group_2_0__0__Impl18605);
            rule__PAT__IdAssignment_2_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getIdAssignment_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_2_0__0__Impl"


    // $ANTLR start "rule__PAT__Group_2_0__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9142:1: rule__PAT__Group_2_0__1 : rule__PAT__Group_2_0__1__Impl ;
    public final void rule__PAT__Group_2_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9146:1: ( rule__PAT__Group_2_0__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9147:2: rule__PAT__Group_2_0__1__Impl
            {
            pushFollow(FOLLOW_rule__PAT__Group_2_0__1__Impl_in_rule__PAT__Group_2_0__118635);
            rule__PAT__Group_2_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_2_0__1"


    // $ANTLR start "rule__PAT__Group_2_0__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9153:1: rule__PAT__Group_2_0__1__Impl : ( ( rule__PAT__PatAssignment_2_0_1 )? ) ;
    public final void rule__PAT__Group_2_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9157:1: ( ( ( rule__PAT__PatAssignment_2_0_1 )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9158:1: ( ( rule__PAT__PatAssignment_2_0_1 )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9158:1: ( ( rule__PAT__PatAssignment_2_0_1 )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9159:1: ( rule__PAT__PatAssignment_2_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getPatAssignment_2_0_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9160:1: ( rule__PAT__PatAssignment_2_0_1 )?
            int alt90=2;
            int LA90_0 = input.LA(1);

            if ( ((LA90_0>=RULE_ID && LA90_0<=RULE_S)||LA90_0==RULE_HEXINT||LA90_0==RULE_USCORE||(LA90_0>=RULE_NEGINT && LA90_0<=RULE_DUALS)||LA90_0==58) ) {
                alt90=1;
            }
            switch (alt90) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9160:2: rule__PAT__PatAssignment_2_0_1
                    {
                    pushFollow(FOLLOW_rule__PAT__PatAssignment_2_0_1_in_rule__PAT__Group_2_0__1__Impl18662);
                    rule__PAT__PatAssignment_2_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getPatAssignment_2_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_2_0__1__Impl"


    // $ANTLR start "rule__PAT__Group_3__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9174:1: rule__PAT__Group_3__0 : rule__PAT__Group_3__0__Impl rule__PAT__Group_3__1 ;
    public final void rule__PAT__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9178:1: ( rule__PAT__Group_3__0__Impl rule__PAT__Group_3__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9179:2: rule__PAT__Group_3__0__Impl rule__PAT__Group_3__1
            {
            pushFollow(FOLLOW_rule__PAT__Group_3__0__Impl_in_rule__PAT__Group_3__018697);
            rule__PAT__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PAT__Group_3__1_in_rule__PAT__Group_3__018700);
            rule__PAT__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_3__0"


    // $ANTLR start "rule__PAT__Group_3__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9186:1: rule__PAT__Group_3__0__Impl : ( '\\'' ) ;
    public final void rule__PAT__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9190:1: ( ( '\\'' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9191:1: ( '\\'' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9191:1: ( '\\'' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9192:1: '\\''
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getApostropheKeyword_3_0()); 
            }
            match(input,58,FOLLOW_58_in_rule__PAT__Group_3__0__Impl18728); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getApostropheKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_3__0__Impl"


    // $ANTLR start "rule__PAT__Group_3__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9205:1: rule__PAT__Group_3__1 : rule__PAT__Group_3__1__Impl rule__PAT__Group_3__2 ;
    public final void rule__PAT__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9209:1: ( rule__PAT__Group_3__1__Impl rule__PAT__Group_3__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9210:2: rule__PAT__Group_3__1__Impl rule__PAT__Group_3__2
            {
            pushFollow(FOLLOW_rule__PAT__Group_3__1__Impl_in_rule__PAT__Group_3__118759);
            rule__PAT__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PAT__Group_3__2_in_rule__PAT__Group_3__118762);
            rule__PAT__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_3__1"


    // $ANTLR start "rule__PAT__Group_3__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9217:1: rule__PAT__Group_3__1__Impl : ( ( rule__PAT__BitpatAssignment_3_1 ) ) ;
    public final void rule__PAT__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9221:1: ( ( ( rule__PAT__BitpatAssignment_3_1 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9222:1: ( ( rule__PAT__BitpatAssignment_3_1 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9222:1: ( ( rule__PAT__BitpatAssignment_3_1 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9223:1: ( rule__PAT__BitpatAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getBitpatAssignment_3_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9224:1: ( rule__PAT__BitpatAssignment_3_1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9224:2: rule__PAT__BitpatAssignment_3_1
            {
            pushFollow(FOLLOW_rule__PAT__BitpatAssignment_3_1_in_rule__PAT__Group_3__1__Impl18789);
            rule__PAT__BitpatAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getBitpatAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_3__1__Impl"


    // $ANTLR start "rule__PAT__Group_3__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9234:1: rule__PAT__Group_3__2 : rule__PAT__Group_3__2__Impl ;
    public final void rule__PAT__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9238:1: ( rule__PAT__Group_3__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9239:2: rule__PAT__Group_3__2__Impl
            {
            pushFollow(FOLLOW_rule__PAT__Group_3__2__Impl_in_rule__PAT__Group_3__218819);
            rule__PAT__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_3__2"


    // $ANTLR start "rule__PAT__Group_3__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9245:1: rule__PAT__Group_3__2__Impl : ( '\\'' ) ;
    public final void rule__PAT__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9249:1: ( ( '\\'' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9250:1: ( '\\'' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9250:1: ( '\\'' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9251:1: '\\''
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getApostropheKeyword_3_2()); 
            }
            match(input,58,FOLLOW_58_in_rule__PAT__Group_3__2__Impl18847); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getApostropheKeyword_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__Group_3__2__Impl"


    // $ANTLR start "rule__DECODEPAT__Group_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9270:1: rule__DECODEPAT__Group_0__0 : rule__DECODEPAT__Group_0__0__Impl rule__DECODEPAT__Group_0__1 ;
    public final void rule__DECODEPAT__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9274:1: ( rule__DECODEPAT__Group_0__0__Impl rule__DECODEPAT__Group_0__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9275:2: rule__DECODEPAT__Group_0__0__Impl rule__DECODEPAT__Group_0__1
            {
            pushFollow(FOLLOW_rule__DECODEPAT__Group_0__0__Impl_in_rule__DECODEPAT__Group_0__018884);
            rule__DECODEPAT__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DECODEPAT__Group_0__1_in_rule__DECODEPAT__Group_0__018887);
            rule__DECODEPAT__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DECODEPAT__Group_0__0"


    // $ANTLR start "rule__DECODEPAT__Group_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9282:1: rule__DECODEPAT__Group_0__0__Impl : ( '\\'' ) ;
    public final void rule__DECODEPAT__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9286:1: ( ( '\\'' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9287:1: ( '\\'' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9287:1: ( '\\'' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9288:1: '\\''
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDECODEPATAccess().getApostropheKeyword_0_0()); 
            }
            match(input,58,FOLLOW_58_in_rule__DECODEPAT__Group_0__0__Impl18915); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDECODEPATAccess().getApostropheKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DECODEPAT__Group_0__0__Impl"


    // $ANTLR start "rule__DECODEPAT__Group_0__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9301:1: rule__DECODEPAT__Group_0__1 : rule__DECODEPAT__Group_0__1__Impl rule__DECODEPAT__Group_0__2 ;
    public final void rule__DECODEPAT__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9305:1: ( rule__DECODEPAT__Group_0__1__Impl rule__DECODEPAT__Group_0__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9306:2: rule__DECODEPAT__Group_0__1__Impl rule__DECODEPAT__Group_0__2
            {
            pushFollow(FOLLOW_rule__DECODEPAT__Group_0__1__Impl_in_rule__DECODEPAT__Group_0__118946);
            rule__DECODEPAT__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__DECODEPAT__Group_0__2_in_rule__DECODEPAT__Group_0__118949);
            rule__DECODEPAT__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DECODEPAT__Group_0__1"


    // $ANTLR start "rule__DECODEPAT__Group_0__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9313:1: rule__DECODEPAT__Group_0__1__Impl : ( ( ( ruleBITPAT ) ) ( ( ruleBITPAT )* ) ) ;
    public final void rule__DECODEPAT__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9317:1: ( ( ( ( ruleBITPAT ) ) ( ( ruleBITPAT )* ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9318:1: ( ( ( ruleBITPAT ) ) ( ( ruleBITPAT )* ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9318:1: ( ( ( ruleBITPAT ) ) ( ( ruleBITPAT )* ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9319:1: ( ( ruleBITPAT ) ) ( ( ruleBITPAT )* )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9319:1: ( ( ruleBITPAT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9320:1: ( ruleBITPAT )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDECODEPATAccess().getBITPATParserRuleCall_0_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9321:1: ( ruleBITPAT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9321:3: ruleBITPAT
            {
            pushFollow(FOLLOW_ruleBITPAT_in_rule__DECODEPAT__Group_0__1__Impl18979);
            ruleBITPAT();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDECODEPATAccess().getBITPATParserRuleCall_0_1()); 
            }

            }

            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9324:1: ( ( ruleBITPAT )* )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9325:1: ( ruleBITPAT )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDECODEPATAccess().getBITPATParserRuleCall_0_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9326:1: ( ruleBITPAT )*
            loop91:
            do {
                int alt91=2;
                int LA91_0 = input.LA(1);

                if ( ((LA91_0>=RULE_ID && LA91_0<=RULE_BINS)||(LA91_0>=RULE_BS && LA91_0<=RULE_DOT)||LA91_0==RULE_DUALS) ) {
                    alt91=1;
                }


                switch (alt91) {
            	case 1 :
            	    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9326:3: ruleBITPAT
            	    {
            	    pushFollow(FOLLOW_ruleBITPAT_in_rule__DECODEPAT__Group_0__1__Impl18992);
            	    ruleBITPAT();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop91;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDECODEPATAccess().getBITPATParserRuleCall_0_1()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DECODEPAT__Group_0__1__Impl"


    // $ANTLR start "rule__DECODEPAT__Group_0__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9337:1: rule__DECODEPAT__Group_0__2 : rule__DECODEPAT__Group_0__2__Impl ;
    public final void rule__DECODEPAT__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9341:1: ( rule__DECODEPAT__Group_0__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9342:2: rule__DECODEPAT__Group_0__2__Impl
            {
            pushFollow(FOLLOW_rule__DECODEPAT__Group_0__2__Impl_in_rule__DECODEPAT__Group_0__219025);
            rule__DECODEPAT__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DECODEPAT__Group_0__2"


    // $ANTLR start "rule__DECODEPAT__Group_0__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9348:1: rule__DECODEPAT__Group_0__2__Impl : ( '\\'' ) ;
    public final void rule__DECODEPAT__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9352:1: ( ( '\\'' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9353:1: ( '\\'' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9353:1: ( '\\'' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9354:1: '\\''
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDECODEPATAccess().getApostropheKeyword_0_2()); 
            }
            match(input,58,FOLLOW_58_in_rule__DECODEPAT__Group_0__2__Impl19053); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDECODEPATAccess().getApostropheKeyword_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DECODEPAT__Group_0__2__Impl"


    // $ANTLR start "rule__BITPAT__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9373:1: rule__BITPAT__Group_1__0 : rule__BITPAT__Group_1__0__Impl rule__BITPAT__Group_1__1 ;
    public final void rule__BITPAT__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9377:1: ( rule__BITPAT__Group_1__0__Impl rule__BITPAT__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9378:2: rule__BITPAT__Group_1__0__Impl rule__BITPAT__Group_1__1
            {
            pushFollow(FOLLOW_rule__BITPAT__Group_1__0__Impl_in_rule__BITPAT__Group_1__019090);
            rule__BITPAT__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__BITPAT__Group_1__1_in_rule__BITPAT__Group_1__019093);
            rule__BITPAT__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPAT__Group_1__0"


    // $ANTLR start "rule__BITPAT__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9385:1: rule__BITPAT__Group_1__0__Impl : ( ( rule__BITPAT__Alternatives_1_0 ) ) ;
    public final void rule__BITPAT__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9389:1: ( ( ( rule__BITPAT__Alternatives_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9390:1: ( ( rule__BITPAT__Alternatives_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9390:1: ( ( rule__BITPAT__Alternatives_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9391:1: ( rule__BITPAT__Alternatives_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATAccess().getAlternatives_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9392:1: ( rule__BITPAT__Alternatives_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9392:2: rule__BITPAT__Alternatives_1_0
            {
            pushFollow(FOLLOW_rule__BITPAT__Alternatives_1_0_in_rule__BITPAT__Group_1__0__Impl19120);
            rule__BITPAT__Alternatives_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATAccess().getAlternatives_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPAT__Group_1__0__Impl"


    // $ANTLR start "rule__BITPAT__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9402:1: rule__BITPAT__Group_1__1 : rule__BITPAT__Group_1__1__Impl ;
    public final void rule__BITPAT__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9406:1: ( rule__BITPAT__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9407:2: rule__BITPAT__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__BITPAT__Group_1__1__Impl_in_rule__BITPAT__Group_1__119150);
            rule__BITPAT__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPAT__Group_1__1"


    // $ANTLR start "rule__BITPAT__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9413:1: rule__BITPAT__Group_1__1__Impl : ( ( ruleBITPATORINT )? ) ;
    public final void rule__BITPAT__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9417:1: ( ( ( ruleBITPATORINT )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9418:1: ( ( ruleBITPATORINT )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9418:1: ( ( ruleBITPATORINT )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9419:1: ( ruleBITPATORINT )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATAccess().getBITPATORINTParserRuleCall_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9420:1: ( ruleBITPATORINT )?
            int alt92=2;
            int LA92_0 = input.LA(1);

            if ( (LA92_0==35||LA92_0==59) ) {
                alt92=1;
            }
            switch (alt92) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9420:3: ruleBITPATORINT
                    {
                    pushFollow(FOLLOW_ruleBITPATORINT_in_rule__BITPAT__Group_1__1__Impl19178);
                    ruleBITPATORINT();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATAccess().getBITPATORINTParserRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPAT__Group_1__1__Impl"


    // $ANTLR start "rule__BITPATORINT__Group_0__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9434:1: rule__BITPATORINT__Group_0__0 : rule__BITPATORINT__Group_0__0__Impl rule__BITPATORINT__Group_0__1 ;
    public final void rule__BITPATORINT__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9438:1: ( rule__BITPATORINT__Group_0__0__Impl rule__BITPATORINT__Group_0__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9439:2: rule__BITPATORINT__Group_0__0__Impl rule__BITPATORINT__Group_0__1
            {
            pushFollow(FOLLOW_rule__BITPATORINT__Group_0__0__Impl_in_rule__BITPATORINT__Group_0__019213);
            rule__BITPATORINT__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__BITPATORINT__Group_0__1_in_rule__BITPATORINT__Group_0__019216);
            rule__BITPATORINT__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPATORINT__Group_0__0"


    // $ANTLR start "rule__BITPATORINT__Group_0__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9446:1: rule__BITPATORINT__Group_0__0__Impl : ( ':' ) ;
    public final void rule__BITPATORINT__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9450:1: ( ( ':' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9451:1: ( ':' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9451:1: ( ':' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9452:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATORINTAccess().getColonKeyword_0_0()); 
            }
            match(input,35,FOLLOW_35_in_rule__BITPATORINT__Group_0__0__Impl19244); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATORINTAccess().getColonKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPATORINT__Group_0__0__Impl"


    // $ANTLR start "rule__BITPATORINT__Group_0__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9465:1: rule__BITPATORINT__Group_0__1 : rule__BITPATORINT__Group_0__1__Impl ;
    public final void rule__BITPATORINT__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9469:1: ( rule__BITPATORINT__Group_0__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9470:2: rule__BITPATORINT__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__BITPATORINT__Group_0__1__Impl_in_rule__BITPATORINT__Group_0__119275);
            rule__BITPATORINT__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPATORINT__Group_0__1"


    // $ANTLR start "rule__BITPATORINT__Group_0__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9476:1: rule__BITPATORINT__Group_0__1__Impl : ( rulePOSINT ) ;
    public final void rule__BITPATORINT__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9480:1: ( ( rulePOSINT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9481:1: ( rulePOSINT )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9481:1: ( rulePOSINT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9482:1: rulePOSINT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATORINTAccess().getPOSINTParserRuleCall_0_1()); 
            }
            pushFollow(FOLLOW_rulePOSINT_in_rule__BITPATORINT__Group_0__1__Impl19302);
            rulePOSINT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATORINTAccess().getPOSINTParserRuleCall_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPATORINT__Group_0__1__Impl"


    // $ANTLR start "rule__BITPATORINT__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9497:1: rule__BITPATORINT__Group_1__0 : rule__BITPATORINT__Group_1__0__Impl rule__BITPATORINT__Group_1__1 ;
    public final void rule__BITPATORINT__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9501:1: ( rule__BITPATORINT__Group_1__0__Impl rule__BITPATORINT__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9502:2: rule__BITPATORINT__Group_1__0__Impl rule__BITPATORINT__Group_1__1
            {
            pushFollow(FOLLOW_rule__BITPATORINT__Group_1__0__Impl_in_rule__BITPATORINT__Group_1__019335);
            rule__BITPATORINT__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__BITPATORINT__Group_1__1_in_rule__BITPATORINT__Group_1__019338);
            rule__BITPATORINT__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPATORINT__Group_1__0"


    // $ANTLR start "rule__BITPATORINT__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9509:1: rule__BITPATORINT__Group_1__0__Impl : ( '@' ) ;
    public final void rule__BITPATORINT__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9513:1: ( ( '@' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9514:1: ( '@' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9514:1: ( '@' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9515:1: '@'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATORINTAccess().getCommercialAtKeyword_1_0()); 
            }
            match(input,59,FOLLOW_59_in_rule__BITPATORINT__Group_1__0__Impl19366); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATORINTAccess().getCommercialAtKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPATORINT__Group_1__0__Impl"


    // $ANTLR start "rule__BITPATORINT__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9528:1: rule__BITPATORINT__Group_1__1 : rule__BITPATORINT__Group_1__1__Impl ;
    public final void rule__BITPATORINT__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9532:1: ( rule__BITPATORINT__Group_1__1__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9533:2: rule__BITPATORINT__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__BITPATORINT__Group_1__1__Impl_in_rule__BITPATORINT__Group_1__119397);
            rule__BITPATORINT__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPATORINT__Group_1__1"


    // $ANTLR start "rule__BITPATORINT__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9539:1: rule__BITPATORINT__Group_1__1__Impl : ( ruleBINARY ) ;
    public final void rule__BITPATORINT__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9543:1: ( ( ruleBINARY ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9544:1: ( ruleBINARY )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9544:1: ( ruleBINARY )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9545:1: ruleBINARY
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBITPATORINTAccess().getBINARYParserRuleCall_1_1()); 
            }
            pushFollow(FOLLOW_ruleBINARY_in_rule__BITPATORINT__Group_1__1__Impl19424);
            ruleBINARY();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBITPATORINTAccess().getBINARYParserRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BITPATORINT__Group_1__1__Impl"


    // $ANTLR start "rule__LIT__Group_1__0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9560:1: rule__LIT__Group_1__0 : rule__LIT__Group_1__0__Impl rule__LIT__Group_1__1 ;
    public final void rule__LIT__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9564:1: ( rule__LIT__Group_1__0__Impl rule__LIT__Group_1__1 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9565:2: rule__LIT__Group_1__0__Impl rule__LIT__Group_1__1
            {
            pushFollow(FOLLOW_rule__LIT__Group_1__0__Impl_in_rule__LIT__Group_1__019457);
            rule__LIT__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__LIT__Group_1__1_in_rule__LIT__Group_1__019460);
            rule__LIT__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LIT__Group_1__0"


    // $ANTLR start "rule__LIT__Group_1__0__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9572:1: rule__LIT__Group_1__0__Impl : ( '\\'' ) ;
    public final void rule__LIT__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9576:1: ( ( '\\'' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9577:1: ( '\\'' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9577:1: ( '\\'' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9578:1: '\\''
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLITAccess().getApostropheKeyword_1_0()); 
            }
            match(input,58,FOLLOW_58_in_rule__LIT__Group_1__0__Impl19488); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLITAccess().getApostropheKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LIT__Group_1__0__Impl"


    // $ANTLR start "rule__LIT__Group_1__1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9591:1: rule__LIT__Group_1__1 : rule__LIT__Group_1__1__Impl rule__LIT__Group_1__2 ;
    public final void rule__LIT__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9595:1: ( rule__LIT__Group_1__1__Impl rule__LIT__Group_1__2 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9596:2: rule__LIT__Group_1__1__Impl rule__LIT__Group_1__2
            {
            pushFollow(FOLLOW_rule__LIT__Group_1__1__Impl_in_rule__LIT__Group_1__119519);
            rule__LIT__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__LIT__Group_1__2_in_rule__LIT__Group_1__119522);
            rule__LIT__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LIT__Group_1__1"


    // $ANTLR start "rule__LIT__Group_1__1__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9603:1: rule__LIT__Group_1__1__Impl : ( ( ruleBINARY )? ) ;
    public final void rule__LIT__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9607:1: ( ( ( ruleBINARY )? ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9608:1: ( ( ruleBINARY )? )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9608:1: ( ( ruleBINARY )? )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9609:1: ( ruleBINARY )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLITAccess().getBINARYParserRuleCall_1_1()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9610:1: ( ruleBINARY )?
            int alt93=2;
            int LA93_0 = input.LA(1);

            if ( (LA93_0==RULE_BINS||(LA93_0>=RULE_BS && LA93_0<=RULE_DOT)||LA93_0==RULE_DUALS) ) {
                alt93=1;
            }
            switch (alt93) {
                case 1 :
                    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9610:3: ruleBINARY
                    {
                    pushFollow(FOLLOW_ruleBINARY_in_rule__LIT__Group_1__1__Impl19550);
                    ruleBINARY();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLITAccess().getBINARYParserRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LIT__Group_1__1__Impl"


    // $ANTLR start "rule__LIT__Group_1__2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9620:1: rule__LIT__Group_1__2 : rule__LIT__Group_1__2__Impl ;
    public final void rule__LIT__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9624:1: ( rule__LIT__Group_1__2__Impl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9625:2: rule__LIT__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__LIT__Group_1__2__Impl_in_rule__LIT__Group_1__219581);
            rule__LIT__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LIT__Group_1__2"


    // $ANTLR start "rule__LIT__Group_1__2__Impl"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9631:1: rule__LIT__Group_1__2__Impl : ( '\\'' ) ;
    public final void rule__LIT__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9635:1: ( ( '\\'' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9636:1: ( '\\'' )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9636:1: ( '\\'' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9637:1: '\\''
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLITAccess().getApostropheKeyword_1_2()); 
            }
            match(input,58,FOLLOW_58_in_rule__LIT__Group_1__2__Impl19609); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLITAccess().getApostropheKeyword_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LIT__Group_1__2__Impl"


    // $ANTLR start "rule__Model__DeclAssignment_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9657:1: rule__Model__DeclAssignment_0 : ( ruleDecl ) ;
    public final void rule__Model__DeclAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9661:1: ( ( ruleDecl ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9662:1: ( ruleDecl )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9662:1: ( ruleDecl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9663:1: ruleDecl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModelAccess().getDeclDeclParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleDecl_in_rule__Model__DeclAssignment_019651);
            ruleDecl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModelAccess().getDeclDeclParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__DeclAssignment_0"


    // $ANTLR start "rule__Model__DeclAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9672:1: rule__Model__DeclAssignment_1_1 : ( ruleDecl ) ;
    public final void rule__Model__DeclAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9676:1: ( ( ruleDecl ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9677:1: ( ruleDecl )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9677:1: ( ruleDecl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9678:1: ruleDecl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModelAccess().getDeclDeclParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleDecl_in_rule__Model__DeclAssignment_1_119682);
            ruleDecl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModelAccess().getDeclDeclParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__DeclAssignment_1_1"


    // $ANTLR start "rule__DeclExport__NameAssignment_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9687:1: rule__DeclExport__NameAssignment_1 : ( ( RULE_ID ) ) ;
    public final void rule__DeclExport__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9691:1: ( ( ( RULE_ID ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9692:1: ( ( RULE_ID ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9692:1: ( ( RULE_ID ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9693:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getNameValCrossReference_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9694:1: ( RULE_ID )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9695:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getNameValIDTerminalRuleCall_1_0_1()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DeclExport__NameAssignment_119717); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getNameValIDTerminalRuleCall_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getNameValCrossReference_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__NameAssignment_1"


    // $ANTLR start "rule__DeclExport__TyVarsAssignment_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9706:1: rule__DeclExport__TyVarsAssignment_2 : ( ruleTyVars ) ;
    public final void rule__DeclExport__TyVarsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9710:1: ( ( ruleTyVars ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9711:1: ( ruleTyVars )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9711:1: ( ruleTyVars )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9712:1: ruleTyVars
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getTyVarsTyVarsParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleTyVars_in_rule__DeclExport__TyVarsAssignment_219752);
            ruleTyVars();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getTyVarsTyVarsParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__TyVarsAssignment_2"


    // $ANTLR start "rule__DeclExport__TypeAssignment_4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9721:1: rule__DeclExport__TypeAssignment_4 : ( ruleTy ) ;
    public final void rule__DeclExport__TypeAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9725:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9726:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9726:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9727:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclExportAccess().getTypeTyParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__DeclExport__TypeAssignment_419783);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclExportAccess().getTypeTyParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclExport__TypeAssignment_4"


    // $ANTLR start "rule__DeclType__NameAssignment_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9736:1: rule__DeclType__NameAssignment_1 : ( ( rule__DeclType__NameAlternatives_1_0 ) ) ;
    public final void rule__DeclType__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9740:1: ( ( ( rule__DeclType__NameAlternatives_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9741:1: ( ( rule__DeclType__NameAlternatives_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9741:1: ( ( rule__DeclType__NameAlternatives_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9742:1: ( rule__DeclType__NameAlternatives_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getNameAlternatives_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9743:1: ( rule__DeclType__NameAlternatives_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9743:2: rule__DeclType__NameAlternatives_1_0
            {
            pushFollow(FOLLOW_rule__DeclType__NameAlternatives_1_0_in_rule__DeclType__NameAssignment_119814);
            rule__DeclType__NameAlternatives_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getNameAlternatives_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__NameAssignment_1"


    // $ANTLR start "rule__DeclType__TyVarsAssignment_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9752:1: rule__DeclType__TyVarsAssignment_2 : ( ruleTyVars ) ;
    public final void rule__DeclType__TyVarsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9756:1: ( ( ruleTyVars ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9757:1: ( ruleTyVars )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9757:1: ( ruleTyVars )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9758:1: ruleTyVars
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getTyVarsTyVarsParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleTyVars_in_rule__DeclType__TyVarsAssignment_219847);
            ruleTyVars();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getTyVarsTyVarsParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__TyVarsAssignment_2"


    // $ANTLR start "rule__DeclType__ConDeclAssignment_4_0_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9767:1: rule__DeclType__ConDeclAssignment_4_0_0_0 : ( ruleConDecl ) ;
    public final void rule__DeclType__ConDeclAssignment_4_0_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9771:1: ( ( ruleConDecl ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9772:1: ( ruleConDecl )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9772:1: ( ruleConDecl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9773:1: ruleConDecl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getConDeclConDeclParserRuleCall_4_0_0_0_0()); 
            }
            pushFollow(FOLLOW_ruleConDecl_in_rule__DeclType__ConDeclAssignment_4_0_0_019878);
            ruleConDecl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getConDeclConDeclParserRuleCall_4_0_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__ConDeclAssignment_4_0_0_0"


    // $ANTLR start "rule__DeclType__ConDeclAssignment_4_0_0_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9782:1: rule__DeclType__ConDeclAssignment_4_0_0_1_1 : ( ruleConDecl ) ;
    public final void rule__DeclType__ConDeclAssignment_4_0_0_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9786:1: ( ( ruleConDecl ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9787:1: ( ruleConDecl )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9787:1: ( ruleConDecl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9788:1: ruleConDecl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getConDeclConDeclParserRuleCall_4_0_0_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleConDecl_in_rule__DeclType__ConDeclAssignment_4_0_0_1_119909);
            ruleConDecl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getConDeclConDeclParserRuleCall_4_0_0_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__ConDeclAssignment_4_0_0_1_1"


    // $ANTLR start "rule__DeclType__ValueAssignment_4_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9797:1: rule__DeclType__ValueAssignment_4_1 : ( ruleTy ) ;
    public final void rule__DeclType__ValueAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9801:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9802:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9802:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9803:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclTypeAccess().getValueTyParserRuleCall_4_1_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__DeclType__ValueAssignment_4_119940);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclTypeAccess().getValueTyParserRuleCall_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclType__ValueAssignment_4_1"


    // $ANTLR start "rule__DeclVal__NameAssignment_1_0_0_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9812:1: rule__DeclVal__NameAssignment_1_0_0_0_0 : ( ( rule__DeclVal__NameAlternatives_1_0_0_0_0_0 ) ) ;
    public final void rule__DeclVal__NameAssignment_1_0_0_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9816:1: ( ( ( rule__DeclVal__NameAlternatives_1_0_0_0_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9817:1: ( ( rule__DeclVal__NameAlternatives_1_0_0_0_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9817:1: ( ( rule__DeclVal__NameAlternatives_1_0_0_0_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9818:1: ( rule__DeclVal__NameAlternatives_1_0_0_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getNameAlternatives_1_0_0_0_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9819:1: ( rule__DeclVal__NameAlternatives_1_0_0_0_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9819:2: rule__DeclVal__NameAlternatives_1_0_0_0_0_0
            {
            pushFollow(FOLLOW_rule__DeclVal__NameAlternatives_1_0_0_0_0_0_in_rule__DeclVal__NameAssignment_1_0_0_0_019971);
            rule__DeclVal__NameAlternatives_1_0_0_0_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getNameAlternatives_1_0_0_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__NameAssignment_1_0_0_0_0"


    // $ANTLR start "rule__DeclVal__NameAssignment_1_0_0_0_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9828:1: rule__DeclVal__NameAssignment_1_0_0_0_1 : ( ruleSYM ) ;
    public final void rule__DeclVal__NameAssignment_1_0_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9832:1: ( ( ruleSYM ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9833:1: ( ruleSYM )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9833:1: ( ruleSYM )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9834:1: ruleSYM
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getNameSYMParserRuleCall_1_0_0_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleSYM_in_rule__DeclVal__NameAssignment_1_0_0_0_120004);
            ruleSYM();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getNameSYMParserRuleCall_1_0_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__NameAssignment_1_0_0_0_1"


    // $ANTLR start "rule__DeclVal__AttrAssignment_1_0_0_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9843:1: rule__DeclVal__AttrAssignment_1_0_0_1 : ( ( rule__DeclVal__AttrAlternatives_1_0_0_1_0 ) ) ;
    public final void rule__DeclVal__AttrAssignment_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9847:1: ( ( ( rule__DeclVal__AttrAlternatives_1_0_0_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9848:1: ( ( rule__DeclVal__AttrAlternatives_1_0_0_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9848:1: ( ( rule__DeclVal__AttrAlternatives_1_0_0_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9849:1: ( rule__DeclVal__AttrAlternatives_1_0_0_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getAttrAlternatives_1_0_0_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9850:1: ( rule__DeclVal__AttrAlternatives_1_0_0_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9850:2: rule__DeclVal__AttrAlternatives_1_0_0_1_0
            {
            pushFollow(FOLLOW_rule__DeclVal__AttrAlternatives_1_0_0_1_0_in_rule__DeclVal__AttrAssignment_1_0_0_120035);
            rule__DeclVal__AttrAlternatives_1_0_0_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getAttrAlternatives_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__AttrAssignment_1_0_0_1"


    // $ANTLR start "rule__DeclVal__ExpAssignment_1_0_0_3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9859:1: rule__DeclVal__ExpAssignment_1_0_0_3 : ( ruleExp ) ;
    public final void rule__DeclVal__ExpAssignment_1_0_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9863:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9864:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9864:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9865:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpExpParserRuleCall_1_0_0_3_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__DeclVal__ExpAssignment_1_0_0_320068);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpExpParserRuleCall_1_0_0_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__ExpAssignment_1_0_0_3"


    // $ANTLR start "rule__DeclVal__MidAssignment_1_1_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9874:1: rule__DeclVal__MidAssignment_1_1_0_0 : ( ruleMID ) ;
    public final void rule__DeclVal__MidAssignment_1_1_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9878:1: ( ( ruleMID ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9879:1: ( ruleMID )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9879:1: ( ruleMID )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9880:1: ruleMID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getMidMIDParserRuleCall_1_1_0_0_0()); 
            }
            pushFollow(FOLLOW_ruleMID_in_rule__DeclVal__MidAssignment_1_1_0_020099);
            ruleMID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getMidMIDParserRuleCall_1_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__MidAssignment_1_1_0_0"


    // $ANTLR start "rule__DeclVal__AttrAssignment_1_1_0_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9889:1: rule__DeclVal__AttrAssignment_1_1_0_1 : ( ( rule__DeclVal__AttrAlternatives_1_1_0_1_0 ) ) ;
    public final void rule__DeclVal__AttrAssignment_1_1_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9893:1: ( ( ( rule__DeclVal__AttrAlternatives_1_1_0_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9894:1: ( ( rule__DeclVal__AttrAlternatives_1_1_0_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9894:1: ( ( rule__DeclVal__AttrAlternatives_1_1_0_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9895:1: ( rule__DeclVal__AttrAlternatives_1_1_0_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getAttrAlternatives_1_1_0_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9896:1: ( rule__DeclVal__AttrAlternatives_1_1_0_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9896:2: rule__DeclVal__AttrAlternatives_1_1_0_1_0
            {
            pushFollow(FOLLOW_rule__DeclVal__AttrAlternatives_1_1_0_1_0_in_rule__DeclVal__AttrAssignment_1_1_0_120130);
            rule__DeclVal__AttrAlternatives_1_1_0_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getAttrAlternatives_1_1_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__AttrAssignment_1_1_0_1"


    // $ANTLR start "rule__DeclVal__ExpAssignment_1_1_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9905:1: rule__DeclVal__ExpAssignment_1_1_2 : ( ruleExp ) ;
    public final void rule__DeclVal__ExpAssignment_1_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9909:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9910:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9910:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9911:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpExpParserRuleCall_1_1_2_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__DeclVal__ExpAssignment_1_1_220163);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpExpParserRuleCall_1_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__ExpAssignment_1_1_2"


    // $ANTLR start "rule__DeclVal__NameAssignment_1_2_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9920:1: rule__DeclVal__NameAssignment_1_2_0 : ( ( rule__DeclVal__NameAlternatives_1_2_0_0 ) ) ;
    public final void rule__DeclVal__NameAssignment_1_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9924:1: ( ( ( rule__DeclVal__NameAlternatives_1_2_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9925:1: ( ( rule__DeclVal__NameAlternatives_1_2_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9925:1: ( ( rule__DeclVal__NameAlternatives_1_2_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9926:1: ( rule__DeclVal__NameAlternatives_1_2_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getNameAlternatives_1_2_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9927:1: ( rule__DeclVal__NameAlternatives_1_2_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9927:2: rule__DeclVal__NameAlternatives_1_2_0_0
            {
            pushFollow(FOLLOW_rule__DeclVal__NameAlternatives_1_2_0_0_in_rule__DeclVal__NameAssignment_1_2_020194);
            rule__DeclVal__NameAlternatives_1_2_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getNameAlternatives_1_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__NameAssignment_1_2_0"


    // $ANTLR start "rule__DeclVal__DecPatAssignment_1_2_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9936:1: rule__DeclVal__DecPatAssignment_1_2_2 : ( ruleDECODEPAT ) ;
    public final void rule__DeclVal__DecPatAssignment_1_2_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9940:1: ( ( ruleDECODEPAT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9941:1: ( ruleDECODEPAT )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9941:1: ( ruleDECODEPAT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9942:1: ruleDECODEPAT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getDecPatDECODEPATParserRuleCall_1_2_2_0()); 
            }
            pushFollow(FOLLOW_ruleDECODEPAT_in_rule__DeclVal__DecPatAssignment_1_2_220227);
            ruleDECODEPAT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getDecPatDECODEPATParserRuleCall_1_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__DecPatAssignment_1_2_2"


    // $ANTLR start "rule__DeclVal__ExpAssignment_1_2_4_0_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9951:1: rule__DeclVal__ExpAssignment_1_2_4_0_1 : ( ruleExp ) ;
    public final void rule__DeclVal__ExpAssignment_1_2_4_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9955:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9956:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9956:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9957:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpExpParserRuleCall_1_2_4_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__DeclVal__ExpAssignment_1_2_4_0_120258);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpExpParserRuleCall_1_2_4_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__ExpAssignment_1_2_4_0_1"


    // $ANTLR start "rule__DeclVal__ExpsAssignment_1_2_4_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9966:1: rule__DeclVal__ExpsAssignment_1_2_4_1_1 : ( ruleExp ) ;
    public final void rule__DeclVal__ExpsAssignment_1_2_4_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9970:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9971:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9971:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9972:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpsExpParserRuleCall_1_2_4_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__DeclVal__ExpsAssignment_1_2_4_1_120289);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpsExpParserRuleCall_1_2_4_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__ExpsAssignment_1_2_4_1_1"


    // $ANTLR start "rule__DeclVal__ExpsAssignment_1_2_4_1_3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9981:1: rule__DeclVal__ExpsAssignment_1_2_4_1_3 : ( ruleExp ) ;
    public final void rule__DeclVal__ExpsAssignment_1_2_4_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9985:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9986:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9986:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9987:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDeclValAccess().getExpsExpParserRuleCall_1_2_4_1_3_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__DeclVal__ExpsAssignment_1_2_4_1_320320);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDeclValAccess().getExpsExpParserRuleCall_1_2_4_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DeclVal__ExpsAssignment_1_2_4_1_3"


    // $ANTLR start "rule__TyVars__AttrAssignment_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:9996:1: rule__TyVars__AttrAssignment_1 : ( ruleTyVar ) ;
    public final void rule__TyVars__AttrAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10000:1: ( ( ruleTyVar ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10001:1: ( ruleTyVar )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10001:1: ( ruleTyVar )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10002:1: ruleTyVar
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsAccess().getAttrTyVarParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_ruleTyVar_in_rule__TyVars__AttrAssignment_120351);
            ruleTyVar();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsAccess().getAttrTyVarParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__AttrAssignment_1"


    // $ANTLR start "rule__TyVars__AttrAssignment_2_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10011:1: rule__TyVars__AttrAssignment_2_1 : ( ruleTyVar ) ;
    public final void rule__TyVars__AttrAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10015:1: ( ( ruleTyVar ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10016:1: ( ruleTyVar )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10016:1: ( ruleTyVar )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10017:1: ruleTyVar
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarsAccess().getAttrTyVarParserRuleCall_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleTyVar_in_rule__TyVars__AttrAssignment_2_120382);
            ruleTyVar();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarsAccess().getAttrTyVarParserRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVars__AttrAssignment_2_1"


    // $ANTLR start "rule__TyVar__NameAssignment"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10026:1: rule__TyVar__NameAssignment : ( ( rule__TyVar__NameAlternatives_0 ) ) ;
    public final void rule__TyVar__NameAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10030:1: ( ( ( rule__TyVar__NameAlternatives_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10031:1: ( ( rule__TyVar__NameAlternatives_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10031:1: ( ( rule__TyVar__NameAlternatives_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10032:1: ( rule__TyVar__NameAlternatives_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyVarAccess().getNameAlternatives_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10033:1: ( rule__TyVar__NameAlternatives_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10033:2: rule__TyVar__NameAlternatives_0
            {
            pushFollow(FOLLOW_rule__TyVar__NameAlternatives_0_in_rule__TyVar__NameAssignment20413);
            rule__TyVar__NameAlternatives_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyVarAccess().getNameAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyVar__NameAssignment"


    // $ANTLR start "rule__ConDecl__NameAssignment_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10042:1: rule__ConDecl__NameAssignment_0 : ( ruleCONS ) ;
    public final void rule__ConDecl__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10046:1: ( ( ruleCONS ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10047:1: ( ruleCONS )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10047:1: ( ruleCONS )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10048:1: ruleCONS
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConDeclAccess().getNameCONSParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleCONS_in_rule__ConDecl__NameAssignment_020446);
            ruleCONS();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConDeclAccess().getNameCONSParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__NameAssignment_0"


    // $ANTLR start "rule__ConDecl__TyAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10057:1: rule__ConDecl__TyAssignment_1_1 : ( ruleTy ) ;
    public final void rule__ConDecl__TyAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10061:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10062:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10062:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10063:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConDeclAccess().getTyTyParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__ConDecl__TyAssignment_1_120477);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConDeclAccess().getTyTyParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConDecl__TyAssignment_1_1"


    // $ANTLR start "rule__Ty__ValueAssignment_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10072:1: rule__Ty__ValueAssignment_0 : ( ( rule__Ty__ValueAlternatives_0_0 ) ) ;
    public final void rule__Ty__ValueAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10076:1: ( ( ( rule__Ty__ValueAlternatives_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10077:1: ( ( rule__Ty__ValueAlternatives_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10077:1: ( ( rule__Ty__ValueAlternatives_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10078:1: ( rule__Ty__ValueAlternatives_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getValueAlternatives_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10079:1: ( rule__Ty__ValueAlternatives_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10079:2: rule__Ty__ValueAlternatives_0_0
            {
            pushFollow(FOLLOW_rule__Ty__ValueAlternatives_0_0_in_rule__Ty__ValueAssignment_020508);
            rule__Ty__ValueAlternatives_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getValueAlternatives_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__ValueAssignment_0"


    // $ANTLR start "rule__Ty__ValueAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10088:1: rule__Ty__ValueAssignment_1_1 : ( ruleINTEGER ) ;
    public final void rule__Ty__ValueAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10092:1: ( ( ruleINTEGER ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10093:1: ( ruleINTEGER )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10093:1: ( ruleINTEGER )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10094:1: ruleINTEGER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getValueINTEGERParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleINTEGER_in_rule__Ty__ValueAssignment_1_120541);
            ruleINTEGER();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getValueINTEGERParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__ValueAssignment_1_1"


    // $ANTLR start "rule__Ty__TypeRefAssignment_2_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10103:1: rule__Ty__TypeRefAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Ty__TypeRefAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10107:1: ( ( ( RULE_ID ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10108:1: ( ( RULE_ID ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10108:1: ( ( RULE_ID ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10109:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTypeRefTypeCrossReference_2_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10110:1: ( RULE_ID )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10111:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTypeRefTypeIDTerminalRuleCall_2_1_0_1()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Ty__TypeRefAssignment_2_120576); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTypeRefTypeIDTerminalRuleCall_2_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTypeRefTypeCrossReference_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__TypeRefAssignment_2_1"


    // $ANTLR start "rule__Ty__TypeRefAssignment_3_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10122:1: rule__Ty__TypeRefAssignment_3_0_0 : ( ( RULE_ID ) ) ;
    public final void rule__Ty__TypeRefAssignment_3_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10126:1: ( ( ( RULE_ID ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10127:1: ( ( RULE_ID ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10127:1: ( ( RULE_ID ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10128:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTypeRefTypeCrossReference_3_0_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10129:1: ( RULE_ID )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10130:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTypeRefTypeIDTerminalRuleCall_3_0_0_0_1()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Ty__TypeRefAssignment_3_0_020615); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTypeRefTypeIDTerminalRuleCall_3_0_0_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTypeRefTypeCrossReference_3_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__TypeRefAssignment_3_0_0"


    // $ANTLR start "rule__Ty__TypeAssignment_3_0_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10141:1: rule__Ty__TypeAssignment_3_0_1 : ( ( rule__Ty__TypeAlternatives_3_0_1_0 ) ) ;
    public final void rule__Ty__TypeAssignment_3_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10145:1: ( ( ( rule__Ty__TypeAlternatives_3_0_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10146:1: ( ( rule__Ty__TypeAlternatives_3_0_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10146:1: ( ( rule__Ty__TypeAlternatives_3_0_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10147:1: ( rule__Ty__TypeAlternatives_3_0_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTypeAlternatives_3_0_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10148:1: ( rule__Ty__TypeAlternatives_3_0_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10148:2: rule__Ty__TypeAlternatives_3_0_1_0
            {
            pushFollow(FOLLOW_rule__Ty__TypeAlternatives_3_0_1_0_in_rule__Ty__TypeAssignment_3_0_120650);
            rule__Ty__TypeAlternatives_3_0_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTypeAlternatives_3_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__TypeAssignment_3_0_1"


    // $ANTLR start "rule__Ty__TyBindAssignment_3_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10157:1: rule__Ty__TyBindAssignment_3_1_1 : ( ruleTyBind ) ;
    public final void rule__Ty__TyBindAssignment_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10161:1: ( ( ruleTyBind ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10162:1: ( ruleTyBind )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10162:1: ( ruleTyBind )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10163:1: ruleTyBind
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTyBindTyBindParserRuleCall_3_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleTyBind_in_rule__Ty__TyBindAssignment_3_1_120683);
            ruleTyBind();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTyBindTyBindParserRuleCall_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__TyBindAssignment_3_1_1"


    // $ANTLR start "rule__Ty__TyBindAssignment_3_1_2_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10172:1: rule__Ty__TyBindAssignment_3_1_2_1 : ( ruleTyBind ) ;
    public final void rule__Ty__TyBindAssignment_3_1_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10176:1: ( ( ruleTyBind ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10177:1: ( ruleTyBind )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10177:1: ( ruleTyBind )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10178:1: ruleTyBind
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getTyBindTyBindParserRuleCall_3_1_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleTyBind_in_rule__Ty__TyBindAssignment_3_1_2_120714);
            ruleTyBind();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getTyBindTyBindParserRuleCall_3_1_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__TyBindAssignment_3_1_2_1"


    // $ANTLR start "rule__Ty__ElementsAssignment_4_2_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10187:1: rule__Ty__ElementsAssignment_4_2_0 : ( ruleTyElement ) ;
    public final void rule__Ty__ElementsAssignment_4_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10191:1: ( ( ruleTyElement ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10192:1: ( ruleTyElement )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10192:1: ( ruleTyElement )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10193:1: ruleTyElement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getElementsTyElementParserRuleCall_4_2_0_0()); 
            }
            pushFollow(FOLLOW_ruleTyElement_in_rule__Ty__ElementsAssignment_4_2_020745);
            ruleTyElement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getElementsTyElementParserRuleCall_4_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__ElementsAssignment_4_2_0"


    // $ANTLR start "rule__Ty__ElementsAssignment_4_2_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10202:1: rule__Ty__ElementsAssignment_4_2_1_1 : ( ruleTyElement ) ;
    public final void rule__Ty__ElementsAssignment_4_2_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10206:1: ( ( ruleTyElement ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10207:1: ( ruleTyElement )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10207:1: ( ruleTyElement )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10208:1: ruleTyElement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getElementsTyElementParserRuleCall_4_2_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleTyElement_in_rule__Ty__ElementsAssignment_4_2_1_120776);
            ruleTyElement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getElementsTyElementParserRuleCall_4_2_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__ElementsAssignment_4_2_1_1"


    // $ANTLR start "rule__Ty__ParamAssignment_5_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10217:1: rule__Ty__ParamAssignment_5_1 : ( ruleTy ) ;
    public final void rule__Ty__ParamAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10221:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10222:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10222:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10223:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getParamTyParserRuleCall_5_1_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__Ty__ParamAssignment_5_120807);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getParamTyParserRuleCall_5_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__ParamAssignment_5_1"


    // $ANTLR start "rule__Ty__ParamAssignment_5_2_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10232:1: rule__Ty__ParamAssignment_5_2_1 : ( ruleTy ) ;
    public final void rule__Ty__ParamAssignment_5_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10236:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10237:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10237:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10238:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getParamTyParserRuleCall_5_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__Ty__ParamAssignment_5_2_120838);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getParamTyParserRuleCall_5_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__ParamAssignment_5_2_1"


    // $ANTLR start "rule__Ty__ResTypeAssignment_5_5"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10247:1: rule__Ty__ResTypeAssignment_5_5 : ( ruleTy ) ;
    public final void rule__Ty__ResTypeAssignment_5_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10251:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10252:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10252:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10253:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getResTypeTyParserRuleCall_5_5_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__Ty__ResTypeAssignment_5_520869);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getResTypeTyParserRuleCall_5_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__ResTypeAssignment_5_5"


    // $ANTLR start "rule__Ty__ResTypeAssignment_6_2_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10262:1: rule__Ty__ResTypeAssignment_6_2_1 : ( ruleTy ) ;
    public final void rule__Ty__ResTypeAssignment_6_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10266:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10267:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10267:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10268:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getResTypeTyParserRuleCall_6_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__Ty__ResTypeAssignment_6_2_120900);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getResTypeTyParserRuleCall_6_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__ResTypeAssignment_6_2_1"


    // $ANTLR start "rule__Ty__RAssignment_7_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10277:1: rule__Ty__RAssignment_7_1 : ( ruleTy ) ;
    public final void rule__Ty__RAssignment_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10281:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10282:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10282:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10283:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getRTyParserRuleCall_7_1_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__Ty__RAssignment_7_120931);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getRTyParserRuleCall_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__RAssignment_7_1"


    // $ANTLR start "rule__Ty__InAssignment_7_3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10292:1: rule__Ty__InAssignment_7_3 : ( ruleTy ) ;
    public final void rule__Ty__InAssignment_7_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10296:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10297:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10297:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10298:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getInTyParserRuleCall_7_3_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__Ty__InAssignment_7_320962);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getInTyParserRuleCall_7_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__InAssignment_7_3"


    // $ANTLR start "rule__Ty__OutAssignment_7_5"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10307:1: rule__Ty__OutAssignment_7_5 : ( ruleTy ) ;
    public final void rule__Ty__OutAssignment_7_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10311:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10312:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10312:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10313:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyAccess().getOutTyParserRuleCall_7_5_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__Ty__OutAssignment_7_520993);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyAccess().getOutTyParserRuleCall_7_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ty__OutAssignment_7_5"


    // $ANTLR start "rule__TyBind__NameAssignment_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10322:1: rule__TyBind__NameAssignment_0 : ( ( rule__TyBind__NameAlternatives_0_0 ) ) ;
    public final void rule__TyBind__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10326:1: ( ( ( rule__TyBind__NameAlternatives_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10327:1: ( ( rule__TyBind__NameAlternatives_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10327:1: ( ( rule__TyBind__NameAlternatives_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10328:1: ( rule__TyBind__NameAlternatives_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyBindAccess().getNameAlternatives_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10329:1: ( rule__TyBind__NameAlternatives_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10329:2: rule__TyBind__NameAlternatives_0_0
            {
            pushFollow(FOLLOW_rule__TyBind__NameAlternatives_0_0_in_rule__TyBind__NameAssignment_021024);
            rule__TyBind__NameAlternatives_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyBindAccess().getNameAlternatives_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__NameAssignment_0"


    // $ANTLR start "rule__TyBind__ValueAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10338:1: rule__TyBind__ValueAssignment_1_1 : ( ruleTy ) ;
    public final void rule__TyBind__ValueAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10342:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10343:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10343:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10344:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyBindAccess().getValueTyParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__TyBind__ValueAssignment_1_121057);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyBindAccess().getValueTyParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyBind__ValueAssignment_1_1"


    // $ANTLR start "rule__TyElement__NameAssignment_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10353:1: rule__TyElement__NameAssignment_0 : ( ( rule__TyElement__NameAlternatives_0_0 ) ) ;
    public final void rule__TyElement__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10357:1: ( ( ( rule__TyElement__NameAlternatives_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10358:1: ( ( rule__TyElement__NameAlternatives_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10358:1: ( ( rule__TyElement__NameAlternatives_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10359:1: ( rule__TyElement__NameAlternatives_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyElementAccess().getNameAlternatives_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10360:1: ( rule__TyElement__NameAlternatives_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10360:2: rule__TyElement__NameAlternatives_0_0
            {
            pushFollow(FOLLOW_rule__TyElement__NameAlternatives_0_0_in_rule__TyElement__NameAssignment_021088);
            rule__TyElement__NameAlternatives_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyElementAccess().getNameAlternatives_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyElement__NameAssignment_0"


    // $ANTLR start "rule__TyElement__ValueAssignment_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10369:1: rule__TyElement__ValueAssignment_2 : ( ruleTy ) ;
    public final void rule__TyElement__ValueAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10373:1: ( ( ruleTy ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10374:1: ( ruleTy )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10374:1: ( ruleTy )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10375:1: ruleTy
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTyElementAccess().getValueTyParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleTy_in_rule__TyElement__ValueAssignment_221121);
            ruleTy();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTyElementAccess().getValueTyParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TyElement__ValueAssignment_2"


    // $ANTLR start "rule__Exp__NameAssignment_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10384:1: rule__Exp__NameAssignment_0 : ( ruleCaseExp ) ;
    public final void rule__Exp__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10388:1: ( ( ruleCaseExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10389:1: ( ruleCaseExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10389:1: ( ruleCaseExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10390:1: ruleCaseExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExpAccess().getNameCaseExpParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleCaseExp_in_rule__Exp__NameAssignment_021152);
            ruleCaseExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExpAccess().getNameCaseExpParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exp__NameAssignment_0"


    // $ANTLR start "rule__Exp__MidAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10399:1: rule__Exp__MidAssignment_1_0 : ( ruleMID ) ;
    public final void rule__Exp__MidAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10403:1: ( ( ruleMID ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10404:1: ( ruleMID )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10404:1: ( ruleMID )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10405:1: ruleMID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExpAccess().getMidMIDParserRuleCall_1_0_0()); 
            }
            pushFollow(FOLLOW_ruleMID_in_rule__Exp__MidAssignment_1_021183);
            ruleMID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExpAccess().getMidMIDParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exp__MidAssignment_1_0"


    // $ANTLR start "rule__Exp__CaseExpsAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10414:1: rule__Exp__CaseExpsAssignment_1_1 : ( ruleCaseExp ) ;
    public final void rule__Exp__CaseExpsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10418:1: ( ( ruleCaseExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10419:1: ( ruleCaseExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10419:1: ( ruleCaseExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10420:1: ruleCaseExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExpAccess().getCaseExpsCaseExpParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleCaseExp_in_rule__Exp__CaseExpsAssignment_1_121214);
            ruleCaseExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExpAccess().getCaseExpsCaseExpParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exp__CaseExpsAssignment_1_1"


    // $ANTLR start "rule__CaseExp__NameAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10429:1: rule__CaseExp__NameAssignment_1_0 : ( ( 'case' ) ) ;
    public final void rule__CaseExp__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10433:1: ( ( ( 'case' ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10434:1: ( ( 'case' ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10434:1: ( ( 'case' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10435:1: ( 'case' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getNameCaseKeyword_1_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10436:1: ( 'case' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10437:1: 'case'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getNameCaseKeyword_1_0_0()); 
            }
            match(input,60,FOLLOW_60_in_rule__CaseExp__NameAssignment_1_021250); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getNameCaseKeyword_1_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getNameCaseKeyword_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__NameAssignment_1_0"


    // $ANTLR start "rule__CaseExp__ClosedExpAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10452:1: rule__CaseExp__ClosedExpAssignment_1_1 : ( ruleClosedExp ) ;
    public final void rule__CaseExp__ClosedExpAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10456:1: ( ( ruleClosedExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10457:1: ( ruleClosedExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10457:1: ( ruleClosedExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10458:1: ruleClosedExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getClosedExpClosedExpParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleClosedExp_in_rule__CaseExp__ClosedExpAssignment_1_121289);
            ruleClosedExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getClosedExpClosedExpParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__ClosedExpAssignment_1_1"


    // $ANTLR start "rule__CaseExp__PatAssignment_1_3_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10467:1: rule__CaseExp__PatAssignment_1_3_0 : ( rulePAT ) ;
    public final void rule__CaseExp__PatAssignment_1_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10471:1: ( ( rulePAT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10472:1: ( rulePAT )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10472:1: ( rulePAT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10473:1: rulePAT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getPatPATParserRuleCall_1_3_0_0()); 
            }
            pushFollow(FOLLOW_rulePAT_in_rule__CaseExp__PatAssignment_1_3_021320);
            rulePAT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getPatPATParserRuleCall_1_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__PatAssignment_1_3_0"


    // $ANTLR start "rule__CaseExp__ExpAssignment_1_3_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10482:1: rule__CaseExp__ExpAssignment_1_3_2 : ( ruleExp ) ;
    public final void rule__CaseExp__ExpAssignment_1_3_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10486:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10487:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10487:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10488:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getExpExpParserRuleCall_1_3_2_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__CaseExp__ExpAssignment_1_3_221351);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getExpExpParserRuleCall_1_3_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__ExpAssignment_1_3_2"


    // $ANTLR start "rule__CaseExp__PatAssignment_1_3_3_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10497:1: rule__CaseExp__PatAssignment_1_3_3_1 : ( rulePAT ) ;
    public final void rule__CaseExp__PatAssignment_1_3_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10501:1: ( ( rulePAT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10502:1: ( rulePAT )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10502:1: ( rulePAT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10503:1: rulePAT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getPatPATParserRuleCall_1_3_3_1_0()); 
            }
            pushFollow(FOLLOW_rulePAT_in_rule__CaseExp__PatAssignment_1_3_3_121382);
            rulePAT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getPatPATParserRuleCall_1_3_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__PatAssignment_1_3_3_1"


    // $ANTLR start "rule__CaseExp__ExpAssignment_1_3_3_3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10512:1: rule__CaseExp__ExpAssignment_1_3_3_3 : ( ruleExp ) ;
    public final void rule__CaseExp__ExpAssignment_1_3_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10516:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10517:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10517:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10518:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCaseExpAccess().getExpExpParserRuleCall_1_3_3_3_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__CaseExp__ExpAssignment_1_3_3_321413);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCaseExpAccess().getExpExpParserRuleCall_1_3_3_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CaseExp__ExpAssignment_1_3_3_3"


    // $ANTLR start "rule__ClosedExp__NameAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10527:1: rule__ClosedExp__NameAssignment_1_0 : ( ( 'if' ) ) ;
    public final void rule__ClosedExp__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10531:1: ( ( ( 'if' ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10532:1: ( ( 'if' ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10532:1: ( ( 'if' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10533:1: ( 'if' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getNameIfKeyword_1_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10534:1: ( 'if' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10535:1: 'if'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getNameIfKeyword_1_0_0()); 
            }
            match(input,61,FOLLOW_61_in_rule__ClosedExp__NameAssignment_1_021449); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getNameIfKeyword_1_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getNameIfKeyword_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__NameAssignment_1_0"


    // $ANTLR start "rule__ClosedExp__IfCaseExpAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10550:1: rule__ClosedExp__IfCaseExpAssignment_1_1 : ( ruleCaseExp ) ;
    public final void rule__ClosedExp__IfCaseExpAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10554:1: ( ( ruleCaseExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10555:1: ( ruleCaseExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10555:1: ( ruleCaseExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10556:1: ruleCaseExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getIfCaseExpCaseExpParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleCaseExp_in_rule__ClosedExp__IfCaseExpAssignment_1_121488);
            ruleCaseExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getIfCaseExpCaseExpParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__IfCaseExpAssignment_1_1"


    // $ANTLR start "rule__ClosedExp__ThenCaseExpAssignment_1_3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10565:1: rule__ClosedExp__ThenCaseExpAssignment_1_3 : ( ruleCaseExp ) ;
    public final void rule__ClosedExp__ThenCaseExpAssignment_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10569:1: ( ( ruleCaseExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10570:1: ( ruleCaseExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10570:1: ( ruleCaseExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10571:1: ruleCaseExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getThenCaseExpCaseExpParserRuleCall_1_3_0()); 
            }
            pushFollow(FOLLOW_ruleCaseExp_in_rule__ClosedExp__ThenCaseExpAssignment_1_321519);
            ruleCaseExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getThenCaseExpCaseExpParserRuleCall_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__ThenCaseExpAssignment_1_3"


    // $ANTLR start "rule__ClosedExp__ElseCaseExpAssignment_1_5"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10580:1: rule__ClosedExp__ElseCaseExpAssignment_1_5 : ( ruleCaseExp ) ;
    public final void rule__ClosedExp__ElseCaseExpAssignment_1_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10584:1: ( ( ruleCaseExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10585:1: ( ruleCaseExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10585:1: ( ruleCaseExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10586:1: ruleCaseExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getElseCaseExpCaseExpParserRuleCall_1_5_0()); 
            }
            pushFollow(FOLLOW_ruleCaseExp_in_rule__ClosedExp__ElseCaseExpAssignment_1_521550);
            ruleCaseExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getElseCaseExpCaseExpParserRuleCall_1_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__ElseCaseExpAssignment_1_5"


    // $ANTLR start "rule__ClosedExp__NameAssignment_2_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10595:1: rule__ClosedExp__NameAssignment_2_0 : ( ( 'do' ) ) ;
    public final void rule__ClosedExp__NameAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10599:1: ( ( ( 'do' ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10600:1: ( ( 'do' ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10600:1: ( ( 'do' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10601:1: ( 'do' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getNameDoKeyword_2_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10602:1: ( 'do' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10603:1: 'do'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getNameDoKeyword_2_0_0()); 
            }
            match(input,62,FOLLOW_62_in_rule__ClosedExp__NameAssignment_2_021586); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getNameDoKeyword_2_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getNameDoKeyword_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__NameAssignment_2_0"


    // $ANTLR start "rule__ClosedExp__DoExpAssignment_2_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10618:1: rule__ClosedExp__DoExpAssignment_2_1 : ( ruleMonadicExp ) ;
    public final void rule__ClosedExp__DoExpAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10622:1: ( ( ruleMonadicExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10623:1: ( ruleMonadicExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10623:1: ( ruleMonadicExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10624:1: ruleMonadicExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getDoExpMonadicExpParserRuleCall_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleMonadicExp_in_rule__ClosedExp__DoExpAssignment_2_121625);
            ruleMonadicExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getDoExpMonadicExpParserRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__DoExpAssignment_2_1"


    // $ANTLR start "rule__ClosedExp__DoExpAssignment_2_2_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10633:1: rule__ClosedExp__DoExpAssignment_2_2_1 : ( ruleMonadicExp ) ;
    public final void rule__ClosedExp__DoExpAssignment_2_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10637:1: ( ( ruleMonadicExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10638:1: ( ruleMonadicExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10638:1: ( ruleMonadicExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10639:1: ruleMonadicExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getClosedExpAccess().getDoExpMonadicExpParserRuleCall_2_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleMonadicExp_in_rule__ClosedExp__DoExpAssignment_2_2_121656);
            ruleMonadicExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getClosedExpAccess().getDoExpMonadicExpParserRuleCall_2_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ClosedExp__DoExpAssignment_2_2_1"


    // $ANTLR start "rule__MonadicExp__ExpAssignment_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10648:1: rule__MonadicExp__ExpAssignment_0 : ( ruleExp ) ;
    public final void rule__MonadicExp__ExpAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10652:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10653:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10653:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10654:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMonadicExpAccess().getExpExpParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__MonadicExp__ExpAssignment_021687);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMonadicExpAccess().getExpExpParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__ExpAssignment_0"


    // $ANTLR start "rule__MonadicExp__NameAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10663:1: rule__MonadicExp__NameAssignment_1_0 : ( ( rule__MonadicExp__NameAlternatives_1_0_0 ) ) ;
    public final void rule__MonadicExp__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10667:1: ( ( ( rule__MonadicExp__NameAlternatives_1_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10668:1: ( ( rule__MonadicExp__NameAlternatives_1_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10668:1: ( ( rule__MonadicExp__NameAlternatives_1_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10669:1: ( rule__MonadicExp__NameAlternatives_1_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMonadicExpAccess().getNameAlternatives_1_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10670:1: ( rule__MonadicExp__NameAlternatives_1_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10670:2: rule__MonadicExp__NameAlternatives_1_0_0
            {
            pushFollow(FOLLOW_rule__MonadicExp__NameAlternatives_1_0_0_in_rule__MonadicExp__NameAssignment_1_021718);
            rule__MonadicExp__NameAlternatives_1_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMonadicExpAccess().getNameAlternatives_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__NameAssignment_1_0"


    // $ANTLR start "rule__MonadicExp__ExpAssignment_1_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10679:1: rule__MonadicExp__ExpAssignment_1_2 : ( ruleExp ) ;
    public final void rule__MonadicExp__ExpAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10683:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10684:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10684:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10685:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMonadicExpAccess().getExpExpParserRuleCall_1_2_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__MonadicExp__ExpAssignment_1_221751);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMonadicExpAccess().getExpExpParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MonadicExp__ExpAssignment_1_2"


    // $ANTLR start "rule__OrElseExp__NameAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10694:1: rule__OrElseExp__NameAssignment_1_1 : ( ( 'or' ) ) ;
    public final void rule__OrElseExp__NameAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10698:1: ( ( ( 'or' ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10699:1: ( ( 'or' ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10699:1: ( ( 'or' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10700:1: ( 'or' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpAccess().getNameOrKeyword_1_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10701:1: ( 'or' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10702:1: 'or'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpAccess().getNameOrKeyword_1_1_0()); 
            }
            match(input,63,FOLLOW_63_in_rule__OrElseExp__NameAssignment_1_121787); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpAccess().getNameOrKeyword_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpAccess().getNameOrKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__NameAssignment_1_1"


    // $ANTLR start "rule__OrElseExp__RightAssignment_1_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10717:1: rule__OrElseExp__RightAssignment_1_2 : ( ruleAndAlsoExp ) ;
    public final void rule__OrElseExp__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10721:1: ( ( ruleAndAlsoExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10722:1: ( ruleAndAlsoExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10722:1: ( ruleAndAlsoExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10723:1: ruleAndAlsoExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOrElseExpAccess().getRightAndAlsoExpParserRuleCall_1_2_0()); 
            }
            pushFollow(FOLLOW_ruleAndAlsoExp_in_rule__OrElseExp__RightAssignment_1_221826);
            ruleAndAlsoExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOrElseExpAccess().getRightAndAlsoExpParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OrElseExp__RightAssignment_1_2"


    // $ANTLR start "rule__AndAlsoExp__NameAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10732:1: rule__AndAlsoExp__NameAssignment_1_1 : ( ( 'and' ) ) ;
    public final void rule__AndAlsoExp__NameAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10736:1: ( ( ( 'and' ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10737:1: ( ( 'and' ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10737:1: ( ( 'and' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10738:1: ( 'and' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpAccess().getNameAndKeyword_1_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10739:1: ( 'and' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10740:1: 'and'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpAccess().getNameAndKeyword_1_1_0()); 
            }
            match(input,64,FOLLOW_64_in_rule__AndAlsoExp__NameAssignment_1_121862); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpAccess().getNameAndKeyword_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpAccess().getNameAndKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__NameAssignment_1_1"


    // $ANTLR start "rule__AndAlsoExp__RightAssignment_1_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10755:1: rule__AndAlsoExp__RightAssignment_1_2 : ( ruleRExp ) ;
    public final void rule__AndAlsoExp__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10759:1: ( ( ruleRExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10760:1: ( ruleRExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10760:1: ( ruleRExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10761:1: ruleRExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAndAlsoExpAccess().getRightRExpParserRuleCall_1_2_0()); 
            }
            pushFollow(FOLLOW_ruleRExp_in_rule__AndAlsoExp__RightAssignment_1_221901);
            ruleRExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAndAlsoExpAccess().getRightRExpParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AndAlsoExp__RightAssignment_1_2"


    // $ANTLR start "rule__RExp__SymAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10770:1: rule__RExp__SymAssignment_1_0 : ( ruleSYM ) ;
    public final void rule__RExp__SymAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10774:1: ( ( ruleSYM ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10775:1: ( ruleSYM )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10775:1: ( ruleSYM )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10776:1: ruleSYM
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRExpAccess().getSymSYMParserRuleCall_1_0_0()); 
            }
            pushFollow(FOLLOW_ruleSYM_in_rule__RExp__SymAssignment_1_021932);
            ruleSYM();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRExpAccess().getSymSYMParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__SymAssignment_1_0"


    // $ANTLR start "rule__RExp__AexpsAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10785:1: rule__RExp__AexpsAssignment_1_1 : ( ruleAExp ) ;
    public final void rule__RExp__AexpsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10789:1: ( ( ruleAExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10790:1: ( ruleAExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10790:1: ( ruleAExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10791:1: ruleAExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRExpAccess().getAexpsAExpParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleAExp_in_rule__RExp__AexpsAssignment_1_121963);
            ruleAExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRExpAccess().getAexpsAExpParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RExp__AexpsAssignment_1_1"


    // $ANTLR start "rule__AExp__SignAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10800:1: rule__AExp__SignAssignment_1_0 : ( ( rule__AExp__SignAlternatives_1_0_0 ) ) ;
    public final void rule__AExp__SignAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10804:1: ( ( ( rule__AExp__SignAlternatives_1_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10805:1: ( ( rule__AExp__SignAlternatives_1_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10805:1: ( ( rule__AExp__SignAlternatives_1_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10806:1: ( rule__AExp__SignAlternatives_1_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAExpAccess().getSignAlternatives_1_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10807:1: ( rule__AExp__SignAlternatives_1_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10807:2: rule__AExp__SignAlternatives_1_0_0
            {
            pushFollow(FOLLOW_rule__AExp__SignAlternatives_1_0_0_in_rule__AExp__SignAssignment_1_021994);
            rule__AExp__SignAlternatives_1_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAExpAccess().getSignAlternatives_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__SignAssignment_1_0"


    // $ANTLR start "rule__AExp__MexpsAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10816:1: rule__AExp__MexpsAssignment_1_1 : ( ruleMExp ) ;
    public final void rule__AExp__MexpsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10820:1: ( ( ruleMExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10821:1: ( ruleMExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10821:1: ( ruleMExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10822:1: ruleMExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAExpAccess().getMexpsMExpParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleMExp_in_rule__AExp__MexpsAssignment_1_122027);
            ruleMExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAExpAccess().getMexpsMExpParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AExp__MexpsAssignment_1_1"


    // $ANTLR start "rule__MExp__SymbolAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10831:1: rule__MExp__SymbolAssignment_1_0 : ( ( rule__MExp__SymbolAlternatives_1_0_0 ) ) ;
    public final void rule__MExp__SymbolAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10835:1: ( ( ( rule__MExp__SymbolAlternatives_1_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10836:1: ( ( rule__MExp__SymbolAlternatives_1_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10836:1: ( ( rule__MExp__SymbolAlternatives_1_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10837:1: ( rule__MExp__SymbolAlternatives_1_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMExpAccess().getSymbolAlternatives_1_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10838:1: ( rule__MExp__SymbolAlternatives_1_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10838:2: rule__MExp__SymbolAlternatives_1_0_0
            {
            pushFollow(FOLLOW_rule__MExp__SymbolAlternatives_1_0_0_in_rule__MExp__SymbolAssignment_1_022058);
            rule__MExp__SymbolAlternatives_1_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMExpAccess().getSymbolAlternatives_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__SymbolAssignment_1_0"


    // $ANTLR start "rule__MExp__ApplyexpsAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10847:1: rule__MExp__ApplyexpsAssignment_1_1 : ( ruleApplyExp ) ;
    public final void rule__MExp__ApplyexpsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10851:1: ( ( ruleApplyExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10852:1: ( ruleApplyExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10852:1: ( ruleApplyExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10853:1: ruleApplyExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMExpAccess().getApplyexpsApplyExpParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleApplyExp_in_rule__MExp__ApplyexpsAssignment_1_122091);
            ruleApplyExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMExpAccess().getApplyexpsApplyExpParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MExp__ApplyexpsAssignment_1_1"


    // $ANTLR start "rule__SelectExp__ApplyexpsAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10862:1: rule__SelectExp__ApplyexpsAssignment_1_1 : ( ruleApplyExp ) ;
    public final void rule__SelectExp__ApplyexpsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10866:1: ( ( ruleApplyExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10867:1: ( ruleApplyExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10867:1: ( ruleApplyExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10868:1: ruleApplyExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSelectExpAccess().getApplyexpsApplyExpParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleApplyExp_in_rule__SelectExp__ApplyexpsAssignment_1_122122);
            ruleApplyExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSelectExpAccess().getApplyexpsApplyExpParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SelectExp__ApplyexpsAssignment_1_1"


    // $ANTLR start "rule__ApplyExp__AtomicExpAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10877:1: rule__ApplyExp__AtomicExpAssignment_1_0 : ( ruleAtomicExp ) ;
    public final void rule__ApplyExp__AtomicExpAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10881:1: ( ( ruleAtomicExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10882:1: ( ruleAtomicExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10882:1: ( ruleAtomicExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10883:1: ruleAtomicExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getApplyExpAccess().getAtomicExpAtomicExpParserRuleCall_1_0_0()); 
            }
            pushFollow(FOLLOW_ruleAtomicExp_in_rule__ApplyExp__AtomicExpAssignment_1_022153);
            ruleAtomicExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getApplyExpAccess().getAtomicExpAtomicExpParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__AtomicExpAssignment_1_0"


    // $ANTLR start "rule__ApplyExp__ArgsAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10892:1: rule__ApplyExp__ArgsAssignment_1_1 : ( ruleArgs ) ;
    public final void rule__ApplyExp__ArgsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10896:1: ( ( ruleArgs ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10897:1: ( ruleArgs )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10897:1: ( ruleArgs )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10898:1: ruleArgs
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getApplyExpAccess().getArgsArgsParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleArgs_in_rule__ApplyExp__ArgsAssignment_1_122184);
            ruleArgs();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getApplyExpAccess().getArgsArgsParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ApplyExp__ArgsAssignment_1_1"


    // $ANTLR start "rule__Args__ArgsAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10907:1: rule__Args__ArgsAssignment_1_0 : ( ruleAtomicExp ) ;
    public final void rule__Args__ArgsAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10911:1: ( ( ruleAtomicExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10912:1: ( ruleAtomicExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10912:1: ( ruleAtomicExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10913:1: ruleAtomicExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgsAccess().getArgsAtomicExpParserRuleCall_1_0_0()); 
            }
            pushFollow(FOLLOW_ruleAtomicExp_in_rule__Args__ArgsAssignment_1_022215);
            ruleAtomicExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgsAccess().getArgsAtomicExpParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Args__ArgsAssignment_1_0"


    // $ANTLR start "rule__AtomicExp__NameAssignment_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10922:1: rule__AtomicExp__NameAssignment_0 : ( ruleLIT ) ;
    public final void rule__AtomicExp__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10926:1: ( ( ruleLIT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10927:1: ( ruleLIT )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10927:1: ( ruleLIT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10928:1: ruleLIT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameLITParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleLIT_in_rule__AtomicExp__NameAssignment_022246);
            ruleLIT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameLITParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__NameAssignment_0"


    // $ANTLR start "rule__AtomicExp__NameAssignment_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10937:1: rule__AtomicExp__NameAssignment_1 : ( RULE_STRING ) ;
    public final void rule__AtomicExp__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10941:1: ( ( RULE_STRING ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10942:1: ( RULE_STRING )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10942:1: ( RULE_STRING )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10943:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameSTRINGTerminalRuleCall_1_0()); 
            }
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__AtomicExp__NameAssignment_122277); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameSTRINGTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__NameAssignment_1"


    // $ANTLR start "rule__AtomicExp__NameAssignment_2_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10952:1: rule__AtomicExp__NameAssignment_2_0 : ( ( rule__AtomicExp__NameAlternatives_2_0_0 ) ) ;
    public final void rule__AtomicExp__NameAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10956:1: ( ( ( rule__AtomicExp__NameAlternatives_2_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10957:1: ( ( rule__AtomicExp__NameAlternatives_2_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10957:1: ( ( rule__AtomicExp__NameAlternatives_2_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10958:1: ( rule__AtomicExp__NameAlternatives_2_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameAlternatives_2_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10959:1: ( rule__AtomicExp__NameAlternatives_2_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10959:2: rule__AtomicExp__NameAlternatives_2_0_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__NameAlternatives_2_0_0_in_rule__AtomicExp__NameAssignment_2_022308);
            rule__AtomicExp__NameAlternatives_2_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameAlternatives_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__NameAssignment_2_0"


    // $ANTLR start "rule__AtomicExp__IdAssignment_2_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10968:1: rule__AtomicExp__IdAssignment_2_1_1 : ( ( rule__AtomicExp__IdAlternatives_2_1_1_0 ) ) ;
    public final void rule__AtomicExp__IdAssignment_2_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10972:1: ( ( ( rule__AtomicExp__IdAlternatives_2_1_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10973:1: ( ( rule__AtomicExp__IdAlternatives_2_1_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10973:1: ( ( rule__AtomicExp__IdAlternatives_2_1_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10974:1: ( rule__AtomicExp__IdAlternatives_2_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getIdAlternatives_2_1_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10975:1: ( rule__AtomicExp__IdAlternatives_2_1_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10975:2: rule__AtomicExp__IdAlternatives_2_1_1_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__IdAlternatives_2_1_1_0_in_rule__AtomicExp__IdAssignment_2_1_122341);
            rule__AtomicExp__IdAlternatives_2_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getIdAlternatives_2_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__IdAssignment_2_1_1"


    // $ANTLR start "rule__AtomicExp__NameAssignment_3_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10984:1: rule__AtomicExp__NameAssignment_3_0 : ( ( '@' ) ) ;
    public final void rule__AtomicExp__NameAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10988:1: ( ( ( '@' ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10989:1: ( ( '@' ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10989:1: ( ( '@' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10990:1: ( '@' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameCommercialAtKeyword_3_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10991:1: ( '@' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:10992:1: '@'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameCommercialAtKeyword_3_0_0()); 
            }
            match(input,59,FOLLOW_59_in_rule__AtomicExp__NameAssignment_3_022379); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameCommercialAtKeyword_3_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameCommercialAtKeyword_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__NameAssignment_3_0"


    // $ANTLR start "rule__AtomicExp__FieldsAssignment_3_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11007:1: rule__AtomicExp__FieldsAssignment_3_2 : ( ruleField ) ;
    public final void rule__AtomicExp__FieldsAssignment_3_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11011:1: ( ( ruleField ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11012:1: ( ruleField )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11012:1: ( ruleField )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11013:1: ruleField
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getFieldsFieldParserRuleCall_3_2_0()); 
            }
            pushFollow(FOLLOW_ruleField_in_rule__AtomicExp__FieldsAssignment_3_222418);
            ruleField();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getFieldsFieldParserRuleCall_3_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__FieldsAssignment_3_2"


    // $ANTLR start "rule__AtomicExp__FieldsAssignment_3_3_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11022:1: rule__AtomicExp__FieldsAssignment_3_3_1 : ( ruleField ) ;
    public final void rule__AtomicExp__FieldsAssignment_3_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11026:1: ( ( ruleField ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11027:1: ( ruleField )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11027:1: ( ruleField )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11028:1: ruleField
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getFieldsFieldParserRuleCall_3_3_1_0()); 
            }
            pushFollow(FOLLOW_ruleField_in_rule__AtomicExp__FieldsAssignment_3_3_122449);
            ruleField();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getFieldsFieldParserRuleCall_3_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__FieldsAssignment_3_3_1"


    // $ANTLR start "rule__AtomicExp__NameAssignment_4_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11037:1: rule__AtomicExp__NameAssignment_4_1 : ( ( rule__AtomicExp__NameAlternatives_4_1_0 ) ) ;
    public final void rule__AtomicExp__NameAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11041:1: ( ( ( rule__AtomicExp__NameAlternatives_4_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11042:1: ( ( rule__AtomicExp__NameAlternatives_4_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11042:1: ( ( rule__AtomicExp__NameAlternatives_4_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11043:1: ( rule__AtomicExp__NameAlternatives_4_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameAlternatives_4_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11044:1: ( rule__AtomicExp__NameAlternatives_4_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11044:2: rule__AtomicExp__NameAlternatives_4_1_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__NameAlternatives_4_1_0_in_rule__AtomicExp__NameAssignment_4_122480);
            rule__AtomicExp__NameAlternatives_4_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameAlternatives_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__NameAssignment_4_1"


    // $ANTLR start "rule__AtomicExp__ExprAssignment_5_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11053:1: rule__AtomicExp__ExprAssignment_5_1 : ( ruleExp ) ;
    public final void rule__AtomicExp__ExprAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11057:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11058:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11058:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11059:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getExprExpParserRuleCall_5_1_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__AtomicExp__ExprAssignment_5_122513);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getExprExpParserRuleCall_5_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__ExprAssignment_5_1"


    // $ANTLR start "rule__AtomicExp__IdAssignment_5_3_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11068:1: rule__AtomicExp__IdAssignment_5_3_1 : ( ( rule__AtomicExp__IdAlternatives_5_3_1_0 ) ) ;
    public final void rule__AtomicExp__IdAssignment_5_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11072:1: ( ( ( rule__AtomicExp__IdAlternatives_5_3_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11073:1: ( ( rule__AtomicExp__IdAlternatives_5_3_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11073:1: ( ( rule__AtomicExp__IdAlternatives_5_3_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11074:1: ( rule__AtomicExp__IdAlternatives_5_3_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getIdAlternatives_5_3_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11075:1: ( rule__AtomicExp__IdAlternatives_5_3_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11075:2: rule__AtomicExp__IdAlternatives_5_3_1_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__IdAlternatives_5_3_1_0_in_rule__AtomicExp__IdAssignment_5_3_122544);
            rule__AtomicExp__IdAlternatives_5_3_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getIdAlternatives_5_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__IdAssignment_5_3_1"


    // $ANTLR start "rule__AtomicExp__IdAssignment_6_2_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11084:1: rule__AtomicExp__IdAssignment_6_2_0 : ( ( rule__AtomicExp__IdAlternatives_6_2_0_0 ) ) ;
    public final void rule__AtomicExp__IdAssignment_6_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11088:1: ( ( ( rule__AtomicExp__IdAlternatives_6_2_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11089:1: ( ( rule__AtomicExp__IdAlternatives_6_2_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11089:1: ( ( rule__AtomicExp__IdAlternatives_6_2_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11090:1: ( rule__AtomicExp__IdAlternatives_6_2_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getIdAlternatives_6_2_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11091:1: ( rule__AtomicExp__IdAlternatives_6_2_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11091:2: rule__AtomicExp__IdAlternatives_6_2_0_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__IdAlternatives_6_2_0_0_in_rule__AtomicExp__IdAssignment_6_2_022577);
            rule__AtomicExp__IdAlternatives_6_2_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getIdAlternatives_6_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__IdAssignment_6_2_0"


    // $ANTLR start "rule__AtomicExp__ExpsAssignment_6_2_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11100:1: rule__AtomicExp__ExpsAssignment_6_2_2 : ( ruleExp ) ;
    public final void rule__AtomicExp__ExpsAssignment_6_2_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11104:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11105:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11105:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11106:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getExpsExpParserRuleCall_6_2_2_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__AtomicExp__ExpsAssignment_6_2_222610);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getExpsExpParserRuleCall_6_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__ExpsAssignment_6_2_2"


    // $ANTLR start "rule__AtomicExp__IdAssignment_6_2_3_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11115:1: rule__AtomicExp__IdAssignment_6_2_3_1 : ( ( rule__AtomicExp__IdAlternatives_6_2_3_1_0 ) ) ;
    public final void rule__AtomicExp__IdAssignment_6_2_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11119:1: ( ( ( rule__AtomicExp__IdAlternatives_6_2_3_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11120:1: ( ( rule__AtomicExp__IdAlternatives_6_2_3_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11120:1: ( ( rule__AtomicExp__IdAlternatives_6_2_3_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11121:1: ( rule__AtomicExp__IdAlternatives_6_2_3_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getIdAlternatives_6_2_3_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11122:1: ( rule__AtomicExp__IdAlternatives_6_2_3_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11122:2: rule__AtomicExp__IdAlternatives_6_2_3_1_0
            {
            pushFollow(FOLLOW_rule__AtomicExp__IdAlternatives_6_2_3_1_0_in_rule__AtomicExp__IdAssignment_6_2_3_122641);
            rule__AtomicExp__IdAlternatives_6_2_3_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getIdAlternatives_6_2_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__IdAssignment_6_2_3_1"


    // $ANTLR start "rule__AtomicExp__ExpsAssignment_6_2_3_3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11131:1: rule__AtomicExp__ExpsAssignment_6_2_3_3 : ( ruleExp ) ;
    public final void rule__AtomicExp__ExpsAssignment_6_2_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11135:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11136:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11136:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11137:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getExpsExpParserRuleCall_6_2_3_3_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__AtomicExp__ExpsAssignment_6_2_3_322674);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getExpsExpParserRuleCall_6_2_3_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__ExpsAssignment_6_2_3_3"


    // $ANTLR start "rule__AtomicExp__NameAssignment_7_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11146:1: rule__AtomicExp__NameAssignment_7_0 : ( ( 'let' ) ) ;
    public final void rule__AtomicExp__NameAssignment_7_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11150:1: ( ( ( 'let' ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11151:1: ( ( 'let' ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11151:1: ( ( 'let' ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11152:1: ( 'let' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameLetKeyword_7_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11153:1: ( 'let' )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11154:1: 'let'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getNameLetKeyword_7_0_0()); 
            }
            match(input,65,FOLLOW_65_in_rule__AtomicExp__NameAssignment_7_022710); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameLetKeyword_7_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getNameLetKeyword_7_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__NameAssignment_7_0"


    // $ANTLR start "rule__AtomicExp__ValDeclAssignment_7_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11169:1: rule__AtomicExp__ValDeclAssignment_7_1 : ( ruleValueDecl ) ;
    public final void rule__AtomicExp__ValDeclAssignment_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11173:1: ( ( ruleValueDecl ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11174:1: ( ruleValueDecl )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11174:1: ( ruleValueDecl )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11175:1: ruleValueDecl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getValDeclValueDeclParserRuleCall_7_1_0()); 
            }
            pushFollow(FOLLOW_ruleValueDecl_in_rule__AtomicExp__ValDeclAssignment_7_122749);
            ruleValueDecl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getValDeclValueDeclParserRuleCall_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__ValDeclAssignment_7_1"


    // $ANTLR start "rule__AtomicExp__ExprAssignment_7_3"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11184:1: rule__AtomicExp__ExprAssignment_7_3 : ( ruleExp ) ;
    public final void rule__AtomicExp__ExprAssignment_7_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11188:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11189:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11189:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11190:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAtomicExpAccess().getExprExpParserRuleCall_7_3_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__AtomicExp__ExprAssignment_7_322780);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAtomicExpAccess().getExprExpParserRuleCall_7_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AtomicExp__ExprAssignment_7_3"


    // $ANTLR start "rule__Field__NameAssignment_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11199:1: rule__Field__NameAssignment_0_0 : ( ( rule__Field__NameAlternatives_0_0_0 ) ) ;
    public final void rule__Field__NameAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11203:1: ( ( ( rule__Field__NameAlternatives_0_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11204:1: ( ( rule__Field__NameAlternatives_0_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11204:1: ( ( rule__Field__NameAlternatives_0_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11205:1: ( rule__Field__NameAlternatives_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldAccess().getNameAlternatives_0_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11206:1: ( rule__Field__NameAlternatives_0_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11206:2: rule__Field__NameAlternatives_0_0_0
            {
            pushFollow(FOLLOW_rule__Field__NameAlternatives_0_0_0_in_rule__Field__NameAssignment_0_022811);
            rule__Field__NameAlternatives_0_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldAccess().getNameAlternatives_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__NameAssignment_0_0"


    // $ANTLR start "rule__Field__ExpAssignment_0_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11215:1: rule__Field__ExpAssignment_0_2 : ( ruleExp ) ;
    public final void rule__Field__ExpAssignment_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11219:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11220:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11220:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11221:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldAccess().getExpExpParserRuleCall_0_2_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__Field__ExpAssignment_0_222844);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldAccess().getExpExpParserRuleCall_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__ExpAssignment_0_2"


    // $ANTLR start "rule__Field__NameAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11230:1: rule__Field__NameAssignment_1_1 : ( ( rule__Field__NameAlternatives_1_1_0 ) ) ;
    public final void rule__Field__NameAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11234:1: ( ( ( rule__Field__NameAlternatives_1_1_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11235:1: ( ( rule__Field__NameAlternatives_1_1_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11235:1: ( ( rule__Field__NameAlternatives_1_1_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11236:1: ( rule__Field__NameAlternatives_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFieldAccess().getNameAlternatives_1_1_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11237:1: ( rule__Field__NameAlternatives_1_1_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11237:2: rule__Field__NameAlternatives_1_1_0
            {
            pushFollow(FOLLOW_rule__Field__NameAlternatives_1_1_0_in_rule__Field__NameAssignment_1_122875);
            rule__Field__NameAlternatives_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFieldAccess().getNameAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Field__NameAssignment_1_1"


    // $ANTLR start "rule__ValueDecl__NameAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11246:1: rule__ValueDecl__NameAssignment_1_0 : ( ( rule__ValueDecl__NameAlternatives_1_0_0 ) ) ;
    public final void rule__ValueDecl__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11250:1: ( ( ( rule__ValueDecl__NameAlternatives_1_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11251:1: ( ( rule__ValueDecl__NameAlternatives_1_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11251:1: ( ( rule__ValueDecl__NameAlternatives_1_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11252:1: ( rule__ValueDecl__NameAlternatives_1_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getNameAlternatives_1_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11253:1: ( rule__ValueDecl__NameAlternatives_1_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11253:2: rule__ValueDecl__NameAlternatives_1_0_0
            {
            pushFollow(FOLLOW_rule__ValueDecl__NameAlternatives_1_0_0_in_rule__ValueDecl__NameAssignment_1_022908);
            rule__ValueDecl__NameAlternatives_1_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getNameAlternatives_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__NameAssignment_1_0"


    // $ANTLR start "rule__ValueDecl__NameAssignment_1_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11262:1: rule__ValueDecl__NameAssignment_1_1 : ( ruleSYM ) ;
    public final void rule__ValueDecl__NameAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11266:1: ( ( ruleSYM ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11267:1: ( ruleSYM )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11267:1: ( ruleSYM )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11268:1: ruleSYM
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getNameSYMParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleSYM_in_rule__ValueDecl__NameAssignment_1_122941);
            ruleSYM();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getNameSYMParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__NameAssignment_1_1"


    // $ANTLR start "rule__ValueDecl__IdsAssignment_2"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11277:1: rule__ValueDecl__IdsAssignment_2 : ( ( rule__ValueDecl__IdsAlternatives_2_0 ) ) ;
    public final void rule__ValueDecl__IdsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11281:1: ( ( ( rule__ValueDecl__IdsAlternatives_2_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11282:1: ( ( rule__ValueDecl__IdsAlternatives_2_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11282:1: ( ( rule__ValueDecl__IdsAlternatives_2_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11283:1: ( rule__ValueDecl__IdsAlternatives_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getIdsAlternatives_2_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11284:1: ( rule__ValueDecl__IdsAlternatives_2_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11284:2: rule__ValueDecl__IdsAlternatives_2_0
            {
            pushFollow(FOLLOW_rule__ValueDecl__IdsAlternatives_2_0_in_rule__ValueDecl__IdsAssignment_222972);
            rule__ValueDecl__IdsAlternatives_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getIdsAlternatives_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__IdsAssignment_2"


    // $ANTLR start "rule__ValueDecl__ExpAssignment_4"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11293:1: rule__ValueDecl__ExpAssignment_4 : ( ruleExp ) ;
    public final void rule__ValueDecl__ExpAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11297:1: ( ( ruleExp ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11298:1: ( ruleExp )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11298:1: ( ruleExp )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11299:1: ruleExp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueDeclAccess().getExpExpParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleExp_in_rule__ValueDecl__ExpAssignment_423005);
            ruleExp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueDeclAccess().getExpExpParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueDecl__ExpAssignment_4"


    // $ANTLR start "rule__PAT__UscoreAssignment_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11308:1: rule__PAT__UscoreAssignment_0 : ( RULE_USCORE ) ;
    public final void rule__PAT__UscoreAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11312:1: ( ( RULE_USCORE ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11313:1: ( RULE_USCORE )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11313:1: ( RULE_USCORE )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11314:1: RULE_USCORE
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getUscoreUSCORETerminalRuleCall_0_0()); 
            }
            match(input,RULE_USCORE,FOLLOW_RULE_USCORE_in_rule__PAT__UscoreAssignment_023036); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getUscoreUSCORETerminalRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__UscoreAssignment_0"


    // $ANTLR start "rule__PAT__IntAssignment_1_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11323:1: rule__PAT__IntAssignment_1_0 : ( ruleINTEGER ) ;
    public final void rule__PAT__IntAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11327:1: ( ( ruleINTEGER ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11328:1: ( ruleINTEGER )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11328:1: ( ruleINTEGER )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11329:1: ruleINTEGER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getIntINTEGERParserRuleCall_1_0_0()); 
            }
            pushFollow(FOLLOW_ruleINTEGER_in_rule__PAT__IntAssignment_1_023067);
            ruleINTEGER();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getIntINTEGERParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__IntAssignment_1_0"


    // $ANTLR start "rule__PAT__IdAssignment_2_0_0"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11338:1: rule__PAT__IdAssignment_2_0_0 : ( ( rule__PAT__IdAlternatives_2_0_0_0 ) ) ;
    public final void rule__PAT__IdAssignment_2_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11342:1: ( ( ( rule__PAT__IdAlternatives_2_0_0_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11343:1: ( ( rule__PAT__IdAlternatives_2_0_0_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11343:1: ( ( rule__PAT__IdAlternatives_2_0_0_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11344:1: ( rule__PAT__IdAlternatives_2_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getIdAlternatives_2_0_0_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11345:1: ( rule__PAT__IdAlternatives_2_0_0_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11345:2: rule__PAT__IdAlternatives_2_0_0_0
            {
            pushFollow(FOLLOW_rule__PAT__IdAlternatives_2_0_0_0_in_rule__PAT__IdAssignment_2_0_023098);
            rule__PAT__IdAlternatives_2_0_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getIdAlternatives_2_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__IdAssignment_2_0_0"


    // $ANTLR start "rule__PAT__PatAssignment_2_0_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11354:1: rule__PAT__PatAssignment_2_0_1 : ( rulePAT ) ;
    public final void rule__PAT__PatAssignment_2_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11358:1: ( ( rulePAT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11359:1: ( rulePAT )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11359:1: ( rulePAT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11360:1: rulePAT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getPatPATParserRuleCall_2_0_1_0()); 
            }
            pushFollow(FOLLOW_rulePAT_in_rule__PAT__PatAssignment_2_0_123131);
            rulePAT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getPatPATParserRuleCall_2_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__PatAssignment_2_0_1"


    // $ANTLR start "rule__PAT__BitpatAssignment_3_1"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11369:1: rule__PAT__BitpatAssignment_3_1 : ( ruleBITPAT ) ;
    public final void rule__PAT__BitpatAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11373:1: ( ( ruleBITPAT ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11374:1: ( ruleBITPAT )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11374:1: ( ruleBITPAT )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11375:1: ruleBITPAT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPATAccess().getBitpatBITPATParserRuleCall_3_1_0()); 
            }
            pushFollow(FOLLOW_ruleBITPAT_in_rule__PAT__BitpatAssignment_3_123162);
            ruleBITPAT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPATAccess().getBitpatBITPATParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PAT__BitpatAssignment_3_1"


    // $ANTLR start "rule__CONS__ConNameAssignment"
    // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11384:1: rule__CONS__ConNameAssignment : ( ( rule__CONS__ConNameAlternatives_0 ) ) ;
    public final void rule__CONS__ConNameAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11388:1: ( ( ( rule__CONS__ConNameAlternatives_0 ) ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11389:1: ( ( rule__CONS__ConNameAlternatives_0 ) )
            {
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11389:1: ( ( rule__CONS__ConNameAlternatives_0 ) )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11390:1: ( rule__CONS__ConNameAlternatives_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCONSAccess().getConNameAlternatives_0()); 
            }
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11391:1: ( rule__CONS__ConNameAlternatives_0 )
            // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:11391:2: rule__CONS__ConNameAlternatives_0
            {
            pushFollow(FOLLOW_rule__CONS__ConNameAlternatives_0_in_rule__CONS__ConNameAssignment23193);
            rule__CONS__ConNameAlternatives_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCONSAccess().getConNameAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CONS__ConNameAssignment"

    // $ANTLR start synpred4_InternalGDSL
    public final void synpred4_InternalGDSL_fragment() throws RecognitionException {   
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1180:1: ( ( ( rule__DeclType__Group_4_0__0 ) ) )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1180:1: ( ( rule__DeclType__Group_4_0__0 ) )
        {
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1180:1: ( ( rule__DeclType__Group_4_0__0 ) )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1181:1: ( rule__DeclType__Group_4_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getDeclTypeAccess().getGroup_4_0()); 
        }
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1182:1: ( rule__DeclType__Group_4_0__0 )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1182:2: rule__DeclType__Group_4_0__0
        {
        pushFollow(FOLLOW_rule__DeclType__Group_4_0__0_in_synpred4_InternalGDSL2471);
        rule__DeclType__Group_4_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred4_InternalGDSL

    // $ANTLR start synpred5_InternalGDSL
    public final void synpred5_InternalGDSL_fragment() throws RecognitionException {   
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1202:1: ( ( ( rule__DeclVal__Group_1_0__0 ) ) )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1202:1: ( ( rule__DeclVal__Group_1_0__0 ) )
        {
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1202:1: ( ( rule__DeclVal__Group_1_0__0 ) )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1203:1: ( rule__DeclVal__Group_1_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getDeclValAccess().getGroup_1_0()); 
        }
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1204:1: ( rule__DeclVal__Group_1_0__0 )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1204:2: rule__DeclVal__Group_1_0__0
        {
        pushFollow(FOLLOW_rule__DeclVal__Group_1_0__0_in_synpred5_InternalGDSL2522);
        rule__DeclVal__Group_1_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred5_InternalGDSL

    // $ANTLR start synpred6_InternalGDSL
    public final void synpred6_InternalGDSL_fragment() throws RecognitionException {   
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1208:6: ( ( ( rule__DeclVal__Group_1_1__0 ) ) )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1208:6: ( ( rule__DeclVal__Group_1_1__0 ) )
        {
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1208:6: ( ( rule__DeclVal__Group_1_1__0 ) )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1209:1: ( rule__DeclVal__Group_1_1__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getDeclValAccess().getGroup_1_1()); 
        }
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1210:1: ( rule__DeclVal__Group_1_1__0 )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:1210:2: rule__DeclVal__Group_1_1__0
        {
        pushFollow(FOLLOW_rule__DeclVal__Group_1_1__0_in_synpred6_InternalGDSL2540);
        rule__DeclVal__Group_1_1__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred6_InternalGDSL

    // $ANTLR start synpred104_InternalGDSL
    public final void synpred104_InternalGDSL_fragment() throws RecognitionException {   
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6968:2: ( rule__RExp__Group_1__0 )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:6968:2: rule__RExp__Group_1__0
        {
        pushFollow(FOLLOW_rule__RExp__Group_1__0_in_synpred104_InternalGDSL14338);
        rule__RExp__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred104_InternalGDSL

    // $ANTLR start synpred108_InternalGDSL
    public final void synpred108_InternalGDSL_fragment() throws RecognitionException {   
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7645:2: ( rule__AtomicExp__Group_2_1__0 )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:7645:2: rule__AtomicExp__Group_2_1__0
        {
        pushFollow(FOLLOW_rule__AtomicExp__Group_2_1__0_in_synpred108_InternalGDSL15674);
        rule__AtomicExp__Group_2_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred108_InternalGDSL

    // $ANTLR start synpred110_InternalGDSL
    public final void synpred110_InternalGDSL_fragment() throws RecognitionException {   
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8113:2: ( rule__AtomicExp__Group_5_3__0 )
        // ../gdsl.plugin.ui/src-gen/gdsl/plugin/ui/contentassist/antlr/internal/InternalGDSL.g:8113:2: rule__AtomicExp__Group_5_3__0
        {
        pushFollow(FOLLOW_rule__AtomicExp__Group_5_3__0_in_synpred110_InternalGDSL16600);
        rule__AtomicExp__Group_5_3__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred110_InternalGDSL

    // Delegated rules

    public final boolean synpred110_InternalGDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred110_InternalGDSL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred6_InternalGDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred6_InternalGDSL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred5_InternalGDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred5_InternalGDSL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred4_InternalGDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred4_InternalGDSL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred108_InternalGDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred108_InternalGDSL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred104_InternalGDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred104_InternalGDSL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }


    protected DFA4 dfa4 = new DFA4(this);
    protected DFA13 dfa13 = new DFA13(this);
    protected DFA79 dfa79 = new DFA79(this);
    static final String DFA4_eotS =
        "\14\uffff";
    static final String DFA4_eofS =
        "\14\uffff";
    static final String DFA4_minS =
        "\1\4\3\0\10\uffff";
    static final String DFA4_maxS =
        "\1\45\3\0\10\uffff";
    static final String DFA4_acceptS =
        "\4\uffff\1\1\4\uffff\1\2\1\uffff\1\3";
    static final String DFA4_specialS =
        "\1\uffff\1\0\1\1\1\2\10\uffff}>";
    static final String[] DFA4_transitionS = {
            "\1\1\1\2\2\uffff\1\11\1\3\5\4\26\uffff\1\11",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS);
    static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS);
    static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS);
    static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS);
    static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS);
    static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS);
    static final short[][] DFA4_transition;

    static {
        int numStates = DFA4_transitionS.length;
        DFA4_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA4_transition[i] = DFA.unpackEncodedString(DFA4_transitionS[i]);
        }
    }

    class DFA4 extends DFA {

        public DFA4(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 4;
            this.eot = DFA4_eot;
            this.eof = DFA4_eof;
            this.min = DFA4_min;
            this.max = DFA4_max;
            this.accept = DFA4_accept;
            this.special = DFA4_special;
            this.transition = DFA4_transition;
        }
        public String getDescription() {
            return "1197:1: rule__DeclVal__Alternatives_1 : ( ( ( rule__DeclVal__Group_1_0__0 ) ) | ( ( rule__DeclVal__Group_1_1__0 ) ) | ( ( rule__DeclVal__Group_1_2__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA4_1 = input.LA(1);

                         
                        int index4_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred5_InternalGDSL()) ) {s = 4;}

                        else if ( (true) ) {s = 11;}

                         
                        input.seek(index4_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA4_2 = input.LA(1);

                         
                        int index4_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred5_InternalGDSL()) ) {s = 4;}

                        else if ( (true) ) {s = 11;}

                         
                        input.seek(index4_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA4_3 = input.LA(1);

                         
                        int index4_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred5_InternalGDSL()) ) {s = 4;}

                        else if ( (synpred6_InternalGDSL()) ) {s = 9;}

                         
                        input.seek(index4_3);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 4, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA13_eotS =
        "\12\uffff";
    static final String DFA13_eofS =
        "\12\uffff";
    static final String DFA13_minS =
        "\1\4\1\uffff\1\4\7\uffff";
    static final String DFA13_maxS =
        "\1\56\1\uffff\1\21\7\uffff";
    static final String DFA13_acceptS =
        "\1\uffff\1\1\1\uffff\1\4\1\5\1\6\1\7\1\10\1\2\1\3";
    static final String DFA13_specialS =
        "\12\uffff}>";
    static final String[] DFA13_transitionS = {
            "\1\3\1\7\2\1\7\uffff\3\1\7\uffff\3\3\4\uffff\1\6\5\uffff\1\2"+
            "\5\uffff\1\4\1\uffff\1\5",
            "",
            "\1\11\2\uffff\1\10\7\uffff\3\10",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS);
    static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS);
    static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS);
    static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS);
    static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS);
    static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS);
    static final short[][] DFA13_transition;

    static {
        int numStates = DFA13_transitionS.length;
        DFA13_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA13_transition[i] = DFA.unpackEncodedString(DFA13_transitionS[i]);
        }
    }

    class DFA13 extends DFA {

        public DFA13(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 13;
            this.eot = DFA13_eot;
            this.eof = DFA13_eof;
            this.min = DFA13_min;
            this.max = DFA13_max;
            this.accept = DFA13_accept;
            this.special = DFA13_special;
            this.transition = DFA13_transition;
        }
        public String getDescription() {
            return "1386:1: rule__Ty__Alternatives : ( ( ( rule__Ty__ValueAssignment_0 ) ) | ( ( rule__Ty__Group_1__0 ) ) | ( ( rule__Ty__Group_2__0 ) ) | ( ( rule__Ty__Group_3__0 ) ) | ( ( rule__Ty__Group_4__0 ) ) | ( ( rule__Ty__Group_5__0 ) ) | ( ( rule__Ty__Group_6__0 ) ) | ( ( rule__Ty__Group_7__0 ) ) );";
        }
    }
    static final String DFA79_eotS =
        "\31\uffff";
    static final String DFA79_eofS =
        "\1\1\30\uffff";
    static final String DFA79_minS =
        "\1\10\17\uffff\1\0\10\uffff";
    static final String DFA79_maxS =
        "\1\100\17\uffff\1\0\10\uffff";
    static final String DFA79_acceptS =
        "\1\uffff\1\2\22\uffff\1\1\4\uffff";
    static final String DFA79_specialS =
        "\20\uffff\1\0\10\uffff}>";
    static final String[] DFA79_transitionS = {
            "\1\1\1\20\5\24\22\uffff\2\1\1\uffff\4\1\2\uffff\2\1\1\uffff"+
            "\1\1\1\uffff\1\1\2\uffff\3\1\4\uffff\1\1\5\uffff\2\1",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA79_eot = DFA.unpackEncodedString(DFA79_eotS);
    static final short[] DFA79_eof = DFA.unpackEncodedString(DFA79_eofS);
    static final char[] DFA79_min = DFA.unpackEncodedStringToUnsignedChars(DFA79_minS);
    static final char[] DFA79_max = DFA.unpackEncodedStringToUnsignedChars(DFA79_maxS);
    static final short[] DFA79_accept = DFA.unpackEncodedString(DFA79_acceptS);
    static final short[] DFA79_special = DFA.unpackEncodedString(DFA79_specialS);
    static final short[][] DFA79_transition;

    static {
        int numStates = DFA79_transitionS.length;
        DFA79_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA79_transition[i] = DFA.unpackEncodedString(DFA79_transitionS[i]);
        }
    }

    class DFA79 extends DFA {

        public DFA79(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 79;
            this.eot = DFA79_eot;
            this.eof = DFA79_eof;
            this.min = DFA79_min;
            this.max = DFA79_max;
            this.accept = DFA79_accept;
            this.special = DFA79_special;
            this.transition = DFA79_transition;
        }
        public String getDescription() {
            return "()* loopback of 6968:1: ( rule__RExp__Group_1__0 )*";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA79_16 = input.LA(1);

                         
                        int index79_16 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred104_InternalGDSL()) ) {s = 20;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index79_16);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 79, _s, input);
            error(nvae);
            throw nvae;
        }
    }
 

    public static final BitSet FOLLOW_ruleModel_in_entryRuleModel67 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleModel74 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group__0_in_ruleModel100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDecl_in_entryRuleDecl127 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDecl134 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Decl__Alternatives_in_ruleDecl160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDeclExport_in_entryRuleDeclExport187 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDeclExport194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__0_in_ruleDeclExport220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDeclType_in_entryRuleDeclType247 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDeclType254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group__0_in_ruleDeclType280 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDeclVal_in_entryRuleDeclVal307 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDeclVal314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group__0_in_ruleDeclVal340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyVars_in_entryRuleTyVars367 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTyVars374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVars__Group__0_in_ruleTyVars400 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyVar_in_entryRuleTyVar427 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTyVar434 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVar__NameAssignment_in_ruleTyVar460 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConDecl_in_entryRuleConDecl487 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleConDecl494 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConDecl__Group__0_in_ruleConDecl520 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_entryRuleTy547 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTy554 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Alternatives_in_ruleTy580 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyBind_in_entryRuleTyBind607 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTyBind614 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyBind__Group__0_in_ruleTyBind640 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyElement_in_entryRuleTyElement667 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTyElement674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyElement__Group__0_in_ruleTyElement700 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_entryRuleExp727 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleExp734 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exp__Alternatives_in_ruleExp760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCaseExp_in_entryRuleCaseExp787 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCaseExp794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Alternatives_in_ruleCaseExp820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleClosedExp_in_entryRuleClosedExp847 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleClosedExp854 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Alternatives_in_ruleClosedExp880 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonadicExp_in_entryRuleMonadicExp907 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonadicExp914 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__Alternatives_in_ruleMonadicExp940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOrElseExp_in_entryRuleOrElseExp967 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOrElseExp974 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group__0_in_ruleOrElseExp1000 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAndAlsoExp_in_entryRuleAndAlsoExp1027 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAndAlsoExp1034 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group__0_in_ruleAndAlsoExp1060 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRExp_in_entryRuleRExp1087 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRExp1094 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RExp__Group__0_in_ruleRExp1120 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAExp_in_entryRuleAExp1147 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAExp1154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AExp__Group__0_in_ruleAExp1180 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMExp_in_entryRuleMExp1207 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMExp1214 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MExp__Group__0_in_ruleMExp1240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectExp_in_entryRuleSelectExp1267 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectExp1274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SelectExp__Group__0_in_ruleSelectExp1300 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleApplyExp_in_entryRuleApplyExp1327 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleApplyExp1334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__Alternatives_in_ruleApplyExp1360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgs_in_entryRuleArgs1387 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArgs1394 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Args__Group__0_in_ruleArgs1420 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAtomicExp_in_entryRuleAtomicExp1447 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAtomicExp1454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Alternatives_in_ruleAtomicExp1480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleField_in_entryRuleField1507 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleField1514 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__Alternatives_in_ruleField1540 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleValueDecl_in_entryRuleValueDecl1567 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleValueDecl1574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__0_in_ruleValueDecl1600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePAT_in_entryRulePAT1627 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePAT1634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Alternatives_in_rulePAT1660 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCONS_in_entryRuleCONS1687 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCONS1694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CONS__ConNameAssignment_in_ruleCONS1720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDECODEPAT_in_entryRuleDECODEPAT1747 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDECODEPAT1754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DECODEPAT__Alternatives_in_ruleDECODEPAT1780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTOKPAT_in_entryRuleTOKPAT1807 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTOKPAT1814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TOKPAT__Alternatives_in_ruleTOKPAT1840 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBITPAT_in_entryRuleBITPAT1867 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBITPAT1874 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPAT__Alternatives_in_ruleBITPAT1900 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBITPATORINT_in_entryRuleBITPATORINT1927 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBITPATORINT1934 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPATORINT__Alternatives_in_ruleBITPATORINT1960 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLIT_in_entryRuleLIT1987 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleLIT1994 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LIT__Alternatives_in_ruleLIT2020 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMID_in_entryRuleMID2047 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMID2054 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MID__Alternatives_in_ruleMID2080 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSYM_in_entryRuleSYM2107 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSYM2114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SYM__Alternatives_in_ruleSYM2140 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleINTEGER_in_entryRuleINTEGER2167 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleINTEGER2174 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__INTEGER__Alternatives_in_ruleINTEGER2200 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePOSINT_in_entryRulePOSINT2227 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePOSINT2234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__POSINT__Alternatives_in_rulePOSINT2260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBINARY_in_entryRuleBINARY2287 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBINARY2294 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BINARY__Alternatives_in_ruleBINARY2320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDeclExport_in_rule__Decl__Alternatives2356 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDeclType_in_rule__Decl__Alternatives2373 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDeclVal_in_rule__Decl__Alternatives2390 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__DeclType__NameAlternatives_1_02422 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__DeclType__NameAlternatives_1_02439 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0__0_in_rule__DeclType__Alternatives_42471 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__ValueAssignment_4_1_in_rule__DeclType__Alternatives_42489 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0__0_in_rule__DeclVal__Alternatives_12522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1__0_in_rule__DeclVal__Alternatives_12540 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__0_in_rule__DeclVal__Alternatives_12558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__NameAssignment_1_0_0_0_0_in_rule__DeclVal__Alternatives_1_0_0_02591 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__NameAssignment_1_0_0_0_1_in_rule__DeclVal__Alternatives_1_0_0_02609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__DeclVal__NameAlternatives_1_0_0_0_0_02642 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__DeclVal__NameAlternatives_1_0_0_0_0_02659 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__DeclVal__AttrAlternatives_1_0_0_1_02691 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__DeclVal__AttrAlternatives_1_0_0_1_02708 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__DeclVal__AttrAlternatives_1_1_0_1_02740 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__DeclVal__AttrAlternatives_1_1_0_1_02757 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__DeclVal__NameAlternatives_1_2_0_02789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__DeclVal__NameAlternatives_1_2_0_02806 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_0__0_in_rule__DeclVal__Alternatives_1_2_42838 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_1__0_in_rule__DeclVal__Alternatives_1_2_42858 = new BitSet(new long[]{0x0000004000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_1__0_in_rule__DeclVal__Alternatives_1_2_42870 = new BitSet(new long[]{0x0000004000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__TyVar__NameAlternatives_02906 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__TyVar__NameAlternatives_02923 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__ValueAssignment_0_in_rule__Ty__Alternatives2955 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_1__0_in_rule__Ty__Alternatives2973 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_2__0_in_rule__Ty__Alternatives2991 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3__0_in_rule__Ty__Alternatives3009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4__0_in_rule__Ty__Alternatives3027 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__0_in_rule__Ty__Alternatives3045 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_6__0_in_rule__Ty__Alternatives3063 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__0_in_rule__Ty__Alternatives3081 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleINTEGER_in_rule__Ty__ValueAlternatives_0_03114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_BINS_in_rule__Ty__ValueAlternatives_0_03131 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__TypeRefAssignment_3_0_0_in_rule__Ty__Alternatives_3_03163 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__TypeAssignment_3_0_1_in_rule__Ty__Alternatives_3_03181 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Ty__TypeAlternatives_3_0_1_03215 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Ty__TypeAlternatives_3_0_1_03235 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Ty__TypeAlternatives_3_0_1_03255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__TyBind__NameAlternatives_0_03289 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__TyBind__NameAlternatives_0_03306 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__TyElement__NameAlternatives_0_03338 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__TyElement__NameAlternatives_0_03355 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exp__NameAssignment_0_in_rule__Exp__Alternatives3387 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exp__Group_1__0_in_rule__Exp__Alternatives3407 = new BitSet(new long[]{0x0000000000000302L});
    public static final BitSet FOLLOW_rule__Exp__Group_1__0_in_rule__Exp__Alternatives3419 = new BitSet(new long[]{0x0000000000000302L});
    public static final BitSet FOLLOW_ruleClosedExp_in_rule__CaseExp__Alternatives3455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__0_in_rule__CaseExp__Alternatives3472 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOrElseExp_in_rule__ClosedExp__Alternatives3505 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__0_in_rule__ClosedExp__Alternatives3522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2__0_in_rule__ClosedExp__Alternatives3540 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__ExpAssignment_0_in_rule__MonadicExp__Alternatives3573 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__Group_1__0_in_rule__MonadicExp__Alternatives3591 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__MonadicExp__NameAlternatives_1_0_03624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__MonadicExp__NameAlternatives_1_0_03641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__AExp__SignAlternatives_1_0_03674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__AExp__SignAlternatives_1_0_03694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__MExp__SymbolAlternatives_1_0_03729 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__MExp__SymbolAlternatives_1_0_03749 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__Group_0__0_in_rule__ApplyExp__Alternatives3783 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__Group_1__0_in_rule__ApplyExp__Alternatives3801 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Args__ArgsAssignment_1_0_in_rule__Args__Alternatives_13834 = new BitSet(new long[]{0x0D005000000780B2L,0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__Args__Alternatives_13854 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__NameAssignment_0_in_rule__AtomicExp__Alternatives3888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__NameAssignment_1_in_rule__AtomicExp__Alternatives3906 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_2__0_in_rule__AtomicExp__Alternatives3924 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__0_in_rule__AtomicExp__Alternatives3942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_4__0_in_rule__AtomicExp__Alternatives3960 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5__0_in_rule__AtomicExp__Alternatives3978 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6__0_in_rule__AtomicExp__Alternatives3996 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__0_in_rule__AtomicExp__Alternatives4014 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__AtomicExp__NameAlternatives_2_0_04047 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__AtomicExp__NameAlternatives_2_0_04064 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__AtomicExp__IdAlternatives_2_1_1_04096 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__AtomicExp__IdAlternatives_2_1_1_04113 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__AtomicExp__NameAlternatives_4_1_04145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__AtomicExp__NameAlternatives_4_1_04162 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__AtomicExp__IdAlternatives_5_3_1_04194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__AtomicExp__IdAlternatives_5_3_1_04211 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__AtomicExp__IdAlternatives_6_2_0_04243 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__AtomicExp__IdAlternatives_6_2_0_04260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__AtomicExp__IdAlternatives_6_2_3_1_04292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__AtomicExp__IdAlternatives_6_2_3_1_04309 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__Group_0__0_in_rule__Field__Alternatives4341 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__Group_1__0_in_rule__Field__Alternatives4359 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Field__NameAlternatives_0_0_04392 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__Field__NameAlternatives_0_0_04409 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Field__NameAlternatives_1_1_04441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__Field__NameAlternatives_1_1_04458 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__NameAssignment_1_0_in_rule__ValueDecl__Alternatives_14490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__NameAssignment_1_1_in_rule__ValueDecl__Alternatives_14508 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__ValueDecl__NameAlternatives_1_0_04541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__ValueDecl__NameAlternatives_1_0_04558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__ValueDecl__IdsAlternatives_2_04590 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__ValueDecl__IdsAlternatives_2_04607 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__UscoreAssignment_0_in_rule__PAT__Alternatives4639 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_1__0_in_rule__PAT__Alternatives4657 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_2__0_in_rule__PAT__Alternatives4675 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_3__0_in_rule__PAT__Alternatives4693 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__PAT__IdAlternatives_2_0_0_04726 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__PAT__IdAlternatives_2_0_0_04743 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__CONS__ConNameAlternatives_04775 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__CONS__ConNameAlternatives_04792 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DECODEPAT__Group_0__0_in_rule__DECODEPAT__Alternatives4824 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTOKPAT_in_rule__DECODEPAT__Alternatives4842 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_HEXINT_in_rule__TOKPAT__Alternatives4874 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TOKPAT__Alternatives_1_in_rule__TOKPAT__Alternatives4891 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__TOKPAT__Alternatives_14924 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__TOKPAT__Alternatives_14941 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBINARY_in_rule__BITPAT__Alternatives4973 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPAT__Group_1__0_in_rule__BITPAT__Alternatives4990 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__BITPAT__Alternatives_1_05023 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__BITPAT__Alternatives_1_05040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPATORINT__Group_0__0_in_rule__BITPATORINT__Alternatives5072 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPATORINT__Group_1__0_in_rule__BITPATORINT__Alternatives5090 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleINTEGER_in_rule__LIT__Alternatives5123 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LIT__Group_1__0_in_rule__LIT__Alternatives5140 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_MIXID_in_rule__MID__Alternatives5173 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_USCORE_in_rule__MID__Alternatives5190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_USCORE_in_rule__SYM__Alternatives5222 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_BS_in_rule__SYM__Alternatives5239 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_DOT_in_rule__SYM__Alternatives5256 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_LESS_in_rule__SYM__Alternatives5273 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_GREATER_in_rule__SYM__Alternatives5290 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_SYM_WO_USCORE_SLASH_BS_DOT_LESS_GREATER_in_rule__SYM__Alternatives5307 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePOSINT_in_rule__INTEGER__Alternatives5339 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_HEXINT_in_rule__INTEGER__Alternatives5356 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_NEGINT_in_rule__INTEGER__Alternatives5373 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_POSINT_WO_DUALS_in_rule__POSINT__Alternatives5405 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_DUALS_in_rule__POSINT__Alternatives5422 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_DUALS_in_rule__BINARY__Alternatives5454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_BINS_in_rule__BINARY__Alternatives5471 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_BS_in_rule__BINARY__Alternatives5488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_DOT_in_rule__BINARY__Alternatives5505 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group__0__Impl_in_rule__Model__Group__05535 = new BitSet(new long[]{0x0000009600000000L});
    public static final BitSet FOLLOW_rule__Model__Group__1_in_rule__Model__Group__05538 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__DeclAssignment_0_in_rule__Model__Group__0__Impl5565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group__1__Impl_in_rule__Model__Group__15595 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group_1__0_in_rule__Model__Group__1__Impl5622 = new BitSet(new long[]{0x0000009600000002L});
    public static final BitSet FOLLOW_rule__Model__Group_1__0__Impl_in_rule__Model__Group_1__05657 = new BitSet(new long[]{0x0000009600000000L});
    public static final BitSet FOLLOW_rule__Model__Group_1__1_in_rule__Model__Group_1__05660 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Model__Group_1__0__Impl5689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group_1__1__Impl_in_rule__Model__Group_1__15722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__DeclAssignment_1_1_in_rule__Model__Group_1__1__Impl5749 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__0__Impl_in_rule__DeclExport__Group__05783 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__1_in_rule__DeclExport__Group__05786 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__DeclExport__Group__0__Impl5814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__1__Impl_in_rule__DeclExport__Group__15845 = new BitSet(new long[]{0x0000010800000000L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__2_in_rule__DeclExport__Group__15848 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclExport__NameAssignment_1_in_rule__DeclExport__Group__1__Impl5875 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__2__Impl_in_rule__DeclExport__Group__25905 = new BitSet(new long[]{0x0000010800000000L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__3_in_rule__DeclExport__Group__25908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclExport__TyVarsAssignment_2_in_rule__DeclExport__Group__2__Impl5935 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__3__Impl_in_rule__DeclExport__Group__35966 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__4_in_rule__DeclExport__Group__35969 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__DeclExport__Group__3__Impl5997 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclExport__Group__4__Impl_in_rule__DeclExport__Group__46028 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclExport__TypeAssignment_4_in_rule__DeclExport__Group__4__Impl6055 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group__0__Impl_in_rule__DeclType__Group__06095 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__DeclType__Group__1_in_rule__DeclType__Group__06098 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__DeclType__Group__0__Impl6126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group__1__Impl_in_rule__DeclType__Group__16157 = new BitSet(new long[]{0x0000012000000000L});
    public static final BitSet FOLLOW_rule__DeclType__Group__2_in_rule__DeclType__Group__16160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__NameAssignment_1_in_rule__DeclType__Group__1__Impl6187 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group__2__Impl_in_rule__DeclType__Group__26217 = new BitSet(new long[]{0x0000012000000000L});
    public static final BitSet FOLLOW_rule__DeclType__Group__3_in_rule__DeclType__Group__26220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__TyVarsAssignment_2_in_rule__DeclType__Group__2__Impl6247 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group__3__Impl_in_rule__DeclType__Group__36278 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__DeclType__Group__4_in_rule__DeclType__Group__36281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__DeclType__Group__3__Impl6309 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group__4__Impl_in_rule__DeclType__Group__46340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Alternatives_4_in_rule__DeclType__Group__4__Impl6367 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0__0__Impl_in_rule__DeclType__Group_4_0__06407 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0_0__0_in_rule__DeclType__Group_4_0__0__Impl6434 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0_0__0__Impl_in_rule__DeclType__Group_4_0_0__06466 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0_0__1_in_rule__DeclType__Group_4_0_0__06469 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__ConDeclAssignment_4_0_0_0_in_rule__DeclType__Group_4_0_0__0__Impl6496 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0_0__1__Impl_in_rule__DeclType__Group_4_0_0__16526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0_0_1__0_in_rule__DeclType__Group_4_0_0__1__Impl6553 = new BitSet(new long[]{0x0000004000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0_0_1__0__Impl_in_rule__DeclType__Group_4_0_0_1__06588 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0_0_1__1_in_rule__DeclType__Group_4_0_0_1__06591 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__DeclType__Group_4_0_0_1__0__Impl6619 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0_0_1__1__Impl_in_rule__DeclType__Group_4_0_0_1__16650 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__ConDeclAssignment_4_0_0_1_1_in_rule__DeclType__Group_4_0_0_1__1__Impl6677 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group__0__Impl_in_rule__DeclVal__Group__06711 = new BitSet(new long[]{0x0000002000007F30L});
    public static final BitSet FOLLOW_rule__DeclVal__Group__1_in_rule__DeclVal__Group__06714 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_rule__DeclVal__Group__0__Impl6742 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group__1__Impl_in_rule__DeclVal__Group__16773 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Alternatives_1_in_rule__DeclVal__Group__1__Impl6800 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0__0__Impl_in_rule__DeclVal__Group_1_0__06834 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0_0__0_in_rule__DeclVal__Group_1_0__0__Impl6861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0_0__0__Impl_in_rule__DeclVal__Group_1_0_0__06893 = new BitSet(new long[]{0x0000002000000030L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0_0__1_in_rule__DeclVal__Group_1_0_0__06896 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Alternatives_1_0_0_0_in_rule__DeclVal__Group_1_0_0__0__Impl6923 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0_0__1__Impl_in_rule__DeclVal__Group_1_0_0__16953 = new BitSet(new long[]{0x0000002000000030L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0_0__2_in_rule__DeclVal__Group_1_0_0__16956 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__AttrAssignment_1_0_0_1_in_rule__DeclVal__Group_1_0_0__1__Impl6983 = new BitSet(new long[]{0x0000000000000032L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0_0__2__Impl_in_rule__DeclVal__Group_1_0_0__27014 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0_0__3_in_rule__DeclVal__Group_1_0_0__27017 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__DeclVal__Group_1_0_0__2__Impl7045 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0_0__3__Impl_in_rule__DeclVal__Group_1_0_0__37076 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__ExpAssignment_1_0_0_3_in_rule__DeclVal__Group_1_0_0__3__Impl7103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1__0__Impl_in_rule__DeclVal__Group_1_1__07141 = new BitSet(new long[]{0x0000002000000300L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1__1_in_rule__DeclVal__Group_1_1__07144 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1_0__0_in_rule__DeclVal__Group_1_1__0__Impl7171 = new BitSet(new long[]{0x0000000000000302L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1__1__Impl_in_rule__DeclVal__Group_1_1__17202 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1__2_in_rule__DeclVal__Group_1_1__17205 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__DeclVal__Group_1_1__1__Impl7233 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1__2__Impl_in_rule__DeclVal__Group_1_1__27264 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__ExpAssignment_1_1_2_in_rule__DeclVal__Group_1_1__2__Impl7291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1_0__0__Impl_in_rule__DeclVal__Group_1_1_0__07327 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1_0__1_in_rule__DeclVal__Group_1_1_0__07330 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__MidAssignment_1_1_0_0_in_rule__DeclVal__Group_1_1_0__0__Impl7357 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1_0__1__Impl_in_rule__DeclVal__Group_1_1_0__17387 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__AttrAssignment_1_1_0_1_in_rule__DeclVal__Group_1_1_0__1__Impl7414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__0__Impl_in_rule__DeclVal__Group_1_2__07448 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__1_in_rule__DeclVal__Group_1_2__07451 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__NameAssignment_1_2_0_in_rule__DeclVal__Group_1_2__0__Impl7478 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__1__Impl_in_rule__DeclVal__Group_1_2__17508 = new BitSet(new long[]{0x04000200000000B0L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__2_in_rule__DeclVal__Group_1_2__17511 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__DeclVal__Group_1_2__1__Impl7539 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__2__Impl_in_rule__DeclVal__Group_1_2__27570 = new BitSet(new long[]{0x04000200000000B0L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__3_in_rule__DeclVal__Group_1_2__27573 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__DecPatAssignment_1_2_2_in_rule__DeclVal__Group_1_2__2__Impl7600 = new BitSet(new long[]{0x04000000000000B2L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__3__Impl_in_rule__DeclVal__Group_1_2__37631 = new BitSet(new long[]{0x0000006000000000L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__4_in_rule__DeclVal__Group_1_2__37634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_rule__DeclVal__Group_1_2__3__Impl7662 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2__4__Impl_in_rule__DeclVal__Group_1_2__47693 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Alternatives_1_2_4_in_rule__DeclVal__Group_1_2__4__Impl7720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_0__0__Impl_in_rule__DeclVal__Group_1_2_4_0__07760 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_0__1_in_rule__DeclVal__Group_1_2_4_0__07763 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__DeclVal__Group_1_2_4_0__0__Impl7791 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_0__1__Impl_in_rule__DeclVal__Group_1_2_4_0__17822 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__ExpAssignment_1_2_4_0_1_in_rule__DeclVal__Group_1_2_4_0__1__Impl7849 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_1__0__Impl_in_rule__DeclVal__Group_1_2_4_1__07883 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_1__1_in_rule__DeclVal__Group_1_2_4_1__07886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__DeclVal__Group_1_2_4_1__0__Impl7914 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_1__1__Impl_in_rule__DeclVal__Group_1_2_4_1__17945 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_1__2_in_rule__DeclVal__Group_1_2_4_1__17948 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__ExpsAssignment_1_2_4_1_1_in_rule__DeclVal__Group_1_2_4_1__1__Impl7975 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_1__2__Impl_in_rule__DeclVal__Group_1_2_4_1__28005 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_1__3_in_rule__DeclVal__Group_1_2_4_1__28008 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__DeclVal__Group_1_2_4_1__2__Impl8036 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_2_4_1__3__Impl_in_rule__DeclVal__Group_1_2_4_1__38067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__ExpsAssignment_1_2_4_1_3_in_rule__DeclVal__Group_1_2_4_1__3__Impl8094 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVars__Group__0__Impl_in_rule__TyVars__Group__08132 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__TyVars__Group__1_in_rule__TyVars__Group__08135 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__TyVars__Group__0__Impl8163 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVars__Group__1__Impl_in_rule__TyVars__Group__18194 = new BitSet(new long[]{0x0000060000000000L});
    public static final BitSet FOLLOW_rule__TyVars__Group__2_in_rule__TyVars__Group__18197 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVars__AttrAssignment_1_in_rule__TyVars__Group__1__Impl8224 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVars__Group__2__Impl_in_rule__TyVars__Group__28254 = new BitSet(new long[]{0x0000060000000000L});
    public static final BitSet FOLLOW_rule__TyVars__Group__3_in_rule__TyVars__Group__28257 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVars__Group_2__0_in_rule__TyVars__Group__2__Impl8284 = new BitSet(new long[]{0x0000040000000002L});
    public static final BitSet FOLLOW_rule__TyVars__Group__3__Impl_in_rule__TyVars__Group__38315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_rule__TyVars__Group__3__Impl8343 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVars__Group_2__0__Impl_in_rule__TyVars__Group_2__08382 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__TyVars__Group_2__1_in_rule__TyVars__Group_2__08385 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TyVars__Group_2__0__Impl8413 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVars__Group_2__1__Impl_in_rule__TyVars__Group_2__18444 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVars__AttrAssignment_2_1_in_rule__TyVars__Group_2__1__Impl8471 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConDecl__Group__0__Impl_in_rule__ConDecl__Group__08505 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__ConDecl__Group__1_in_rule__ConDecl__Group__08508 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConDecl__NameAssignment_0_in_rule__ConDecl__Group__0__Impl8535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConDecl__Group__1__Impl_in_rule__ConDecl__Group__18565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConDecl__Group_1__0_in_rule__ConDecl__Group__1__Impl8592 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConDecl__Group_1__0__Impl_in_rule__ConDecl__Group_1__08627 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__ConDecl__Group_1__1_in_rule__ConDecl__Group_1__08630 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__ConDecl__Group_1__0__Impl8658 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConDecl__Group_1__1__Impl_in_rule__ConDecl__Group_1__18689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConDecl__TyAssignment_1_1_in_rule__ConDecl__Group_1__1__Impl8716 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_1__0__Impl_in_rule__Ty__Group_1__08750 = new BitSet(new long[]{0x0000000000038080L});
    public static final BitSet FOLLOW_rule__Ty__Group_1__1_in_rule__Ty__Group_1__08753 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__Ty__Group_1__0__Impl8781 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_1__1__Impl_in_rule__Ty__Group_1__18812 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_1__2_in_rule__Ty__Group_1__18815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__ValueAssignment_1_1_in_rule__Ty__Group_1__1__Impl8842 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_1__2__Impl_in_rule__Ty__Group_1__28872 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__Ty__Group_1__2__Impl8900 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_2__0__Impl_in_rule__Ty__Group_2__08937 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Ty__Group_2__1_in_rule__Ty__Group_2__08940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__Ty__Group_2__0__Impl8968 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_2__1__Impl_in_rule__Ty__Group_2__18999 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_2__2_in_rule__Ty__Group_2__19002 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__TypeRefAssignment_2_1_in_rule__Ty__Group_2__1__Impl9029 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_2__2__Impl_in_rule__Ty__Group_2__29059 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__Ty__Group_2__2__Impl9087 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3__0__Impl_in_rule__Ty__Group_3__09124 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_3__1_in_rule__Ty__Group_3__09127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Alternatives_3_0_in_rule__Ty__Group_3__0__Impl9154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3__1__Impl_in_rule__Ty__Group_3__19184 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1__0_in_rule__Ty__Group_3__1__Impl9211 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1__0__Impl_in_rule__Ty__Group_3_1__09246 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1__1_in_rule__Ty__Group_3_1__09249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__Ty__Group_3_1__0__Impl9277 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1__1__Impl_in_rule__Ty__Group_3_1__19308 = new BitSet(new long[]{0x0000060000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1__2_in_rule__Ty__Group_3_1__19311 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__TyBindAssignment_3_1_1_in_rule__Ty__Group_3_1__1__Impl9338 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1__2__Impl_in_rule__Ty__Group_3_1__29368 = new BitSet(new long[]{0x0000060000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1__3_in_rule__Ty__Group_3_1__29371 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1_2__0_in_rule__Ty__Group_3_1__2__Impl9398 = new BitSet(new long[]{0x0000040000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1__3__Impl_in_rule__Ty__Group_3_1__39429 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_rule__Ty__Group_3_1__3__Impl9457 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1_2__0__Impl_in_rule__Ty__Group_3_1_2__09496 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1_2__1_in_rule__Ty__Group_3_1_2__09499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__Ty__Group_3_1_2__0__Impl9527 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_3_1_2__1__Impl_in_rule__Ty__Group_3_1_2__19558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__TyBindAssignment_3_1_2_1_in_rule__Ty__Group_3_1_2__1__Impl9585 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4__0__Impl_in_rule__Ty__Group_4__09619 = new BitSet(new long[]{0x0000100000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_4__1_in_rule__Ty__Group_4__09622 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4__1__Impl_in_rule__Ty__Group_4__19680 = new BitSet(new long[]{0x0000200000000030L});
    public static final BitSet FOLLOW_rule__Ty__Group_4__2_in_rule__Ty__Group_4__19683 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_rule__Ty__Group_4__1__Impl9711 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4__2__Impl_in_rule__Ty__Group_4__29742 = new BitSet(new long[]{0x0000200000000030L});
    public static final BitSet FOLLOW_rule__Ty__Group_4__3_in_rule__Ty__Group_4__29745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4_2__0_in_rule__Ty__Group_4__2__Impl9772 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4__3__Impl_in_rule__Ty__Group_4__39803 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__Ty__Group_4__3__Impl9831 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4_2__0__Impl_in_rule__Ty__Group_4_2__09870 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_4_2__1_in_rule__Ty__Group_4_2__09873 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__ElementsAssignment_4_2_0_in_rule__Ty__Group_4_2__0__Impl9900 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4_2__1__Impl_in_rule__Ty__Group_4_2__19930 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4_2_1__0_in_rule__Ty__Group_4_2__1__Impl9957 = new BitSet(new long[]{0x0000040000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4_2_1__0__Impl_in_rule__Ty__Group_4_2_1__09992 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__Ty__Group_4_2_1__1_in_rule__Ty__Group_4_2_1__09995 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__Ty__Group_4_2_1__0__Impl10023 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_4_2_1__1__Impl_in_rule__Ty__Group_4_2_1__110054 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__ElementsAssignment_4_2_1_1_in_rule__Ty__Group_4_2_1__1__Impl10081 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__0__Impl_in_rule__Ty__Group_5__010115 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__1_in_rule__Ty__Group_5__010118 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_rule__Ty__Group_5__0__Impl10146 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__1__Impl_in_rule__Ty__Group_5__110177 = new BitSet(new long[]{0x0000840000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__2_in_rule__Ty__Group_5__110180 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__ParamAssignment_5_1_in_rule__Ty__Group_5__1__Impl10207 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__2__Impl_in_rule__Ty__Group_5__210237 = new BitSet(new long[]{0x0000840000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__3_in_rule__Ty__Group_5__210240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5_2__0_in_rule__Ty__Group_5__2__Impl10267 = new BitSet(new long[]{0x0000040000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__3__Impl_in_rule__Ty__Group_5__310298 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__4_in_rule__Ty__Group_5__310301 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_rule__Ty__Group_5__3__Impl10329 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__4__Impl_in_rule__Ty__Group_5__410360 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__5_in_rule__Ty__Group_5__410363 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_rule__Ty__Group_5__4__Impl10391 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5__5__Impl_in_rule__Ty__Group_5__510422 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__ResTypeAssignment_5_5_in_rule__Ty__Group_5__5__Impl10449 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5_2__0__Impl_in_rule__Ty__Group_5_2__010491 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__Ty__Group_5_2__1_in_rule__Ty__Group_5_2__010494 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__Ty__Group_5_2__0__Impl10522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_5_2__1__Impl_in_rule__Ty__Group_5_2__110553 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__ParamAssignment_5_2_1_in_rule__Ty__Group_5_2__1__Impl10580 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_6__0__Impl_in_rule__Ty__Group_6__010614 = new BitSet(new long[]{0x0000000100000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_6__1_in_rule__Ty__Group_6__010617 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_6__1__Impl_in_rule__Ty__Group_6__110675 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_6__2_in_rule__Ty__Group_6__110678 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__Ty__Group_6__1__Impl10706 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_6__2__Impl_in_rule__Ty__Group_6__210737 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_6_2__0_in_rule__Ty__Group_6__2__Impl10764 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_6_2__0__Impl_in_rule__Ty__Group_6_2__010801 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__Ty__Group_6_2__1_in_rule__Ty__Group_6_2__010804 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_rule__Ty__Group_6_2__0__Impl10832 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_6_2__1__Impl_in_rule__Ty__Group_6_2__110863 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__ResTypeAssignment_6_2_1_in_rule__Ty__Group_6_2__1__Impl10890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__0__Impl_in_rule__Ty__Group_7__010924 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__1_in_rule__Ty__Group_7__010927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_S_in_rule__Ty__Group_7__0__Impl10954 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__1__Impl_in_rule__Ty__Group_7__110983 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__2_in_rule__Ty__Group_7__110986 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__RAssignment_7_1_in_rule__Ty__Group_7__1__Impl11013 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__2__Impl_in_rule__Ty__Group_7__211043 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__3_in_rule__Ty__Group_7__211046 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_LESS_in_rule__Ty__Group_7__2__Impl11073 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__3__Impl_in_rule__Ty__Group_7__311102 = new BitSet(new long[]{0x0002000000000000L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__4_in_rule__Ty__Group_7__311105 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__InAssignment_7_3_in_rule__Ty__Group_7__3__Impl11132 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__4__Impl_in_rule__Ty__Group_7__411162 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__5_in_rule__Ty__Group_7__411165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_rule__Ty__Group_7__4__Impl11193 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__5__Impl_in_rule__Ty__Group_7__511224 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__6_in_rule__Ty__Group_7__511227 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__OutAssignment_7_5_in_rule__Ty__Group_7__5__Impl11254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__Group_7__6__Impl_in_rule__Ty__Group_7__611284 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_GREATER_in_rule__Ty__Group_7__6__Impl11311 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyBind__Group__0__Impl_in_rule__TyBind__Group__011354 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__TyBind__Group__1_in_rule__TyBind__Group__011357 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyBind__NameAssignment_0_in_rule__TyBind__Group__0__Impl11384 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyBind__Group__1__Impl_in_rule__TyBind__Group__111414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyBind__Group_1__0_in_rule__TyBind__Group__1__Impl11441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyBind__Group_1__0__Impl_in_rule__TyBind__Group_1__011476 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__TyBind__Group_1__1_in_rule__TyBind__Group_1__011479 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__TyBind__Group_1__0__Impl11507 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyBind__Group_1__1__Impl_in_rule__TyBind__Group_1__111538 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyBind__ValueAssignment_1_1_in_rule__TyBind__Group_1__1__Impl11565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyElement__Group__0__Impl_in_rule__TyElement__Group__011599 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__TyElement__Group__1_in_rule__TyElement__Group__011602 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyElement__NameAssignment_0_in_rule__TyElement__Group__0__Impl11629 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyElement__Group__1__Impl_in_rule__TyElement__Group__111659 = new BitSet(new long[]{0x000050410E0380F0L});
    public static final BitSet FOLLOW_rule__TyElement__Group__2_in_rule__TyElement__Group__111662 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__TyElement__Group__1__Impl11690 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyElement__Group__2__Impl_in_rule__TyElement__Group__211721 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyElement__ValueAssignment_2_in_rule__TyElement__Group__2__Impl11748 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exp__Group_1__0__Impl_in_rule__Exp__Group_1__011784 = new BitSet(new long[]{0x7D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exp__Group_1__1_in_rule__Exp__Group_1__011787 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exp__MidAssignment_1_0_in_rule__Exp__Group_1__0__Impl11814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exp__Group_1__1__Impl_in_rule__Exp__Group_1__111844 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exp__CaseExpsAssignment_1_1_in_rule__Exp__Group_1__1__Impl11871 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__0__Impl_in_rule__CaseExp__Group_1__011905 = new BitSet(new long[]{0x6D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__1_in_rule__CaseExp__Group_1__011908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__NameAssignment_1_0_in_rule__CaseExp__Group_1__0__Impl11935 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__1__Impl_in_rule__CaseExp__Group_1__111965 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__2_in_rule__CaseExp__Group_1__111968 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__ClosedExpAssignment_1_1_in_rule__CaseExp__Group_1__1__Impl11995 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__2__Impl_in_rule__CaseExp__Group_1__212025 = new BitSet(new long[]{0x04000000000382B0L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__3_in_rule__CaseExp__Group_1__212028 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__CaseExp__Group_1__2__Impl12056 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__3__Impl_in_rule__CaseExp__Group_1__312087 = new BitSet(new long[]{0x0004000000000000L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__4_in_rule__CaseExp__Group_1__312090 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3__0_in_rule__CaseExp__Group_1__3__Impl12117 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1__4__Impl_in_rule__CaseExp__Group_1__412147 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__CaseExp__Group_1__4__Impl12175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3__0__Impl_in_rule__CaseExp__Group_1_3__012216 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3__1_in_rule__CaseExp__Group_1_3__012219 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__PatAssignment_1_3_0_in_rule__CaseExp__Group_1_3__0__Impl12246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3__1__Impl_in_rule__CaseExp__Group_1_3__112276 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3__2_in_rule__CaseExp__Group_1_3__112279 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__CaseExp__Group_1_3__1__Impl12307 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3__2__Impl_in_rule__CaseExp__Group_1_3__212338 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3__3_in_rule__CaseExp__Group_1_3__212341 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__ExpAssignment_1_3_2_in_rule__CaseExp__Group_1_3__2__Impl12368 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3__3__Impl_in_rule__CaseExp__Group_1_3__312398 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3_3__0_in_rule__CaseExp__Group_1_3__3__Impl12425 = new BitSet(new long[]{0x0000004000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3_3__0__Impl_in_rule__CaseExp__Group_1_3_3__012464 = new BitSet(new long[]{0x04000000000382B0L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3_3__1_in_rule__CaseExp__Group_1_3_3__012467 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__CaseExp__Group_1_3_3__0__Impl12495 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3_3__1__Impl_in_rule__CaseExp__Group_1_3_3__112526 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3_3__2_in_rule__CaseExp__Group_1_3_3__112529 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__PatAssignment_1_3_3_1_in_rule__CaseExp__Group_1_3_3__1__Impl12556 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3_3__2__Impl_in_rule__CaseExp__Group_1_3_3__212586 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3_3__3_in_rule__CaseExp__Group_1_3_3__212589 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__CaseExp__Group_1_3_3__2__Impl12617 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__Group_1_3_3__3__Impl_in_rule__CaseExp__Group_1_3_3__312648 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CaseExp__ExpAssignment_1_3_3_3_in_rule__CaseExp__Group_1_3_3__3__Impl12675 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__0__Impl_in_rule__ClosedExp__Group_1__012713 = new BitSet(new long[]{0x7D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__1_in_rule__ClosedExp__Group_1__012716 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__NameAssignment_1_0_in_rule__ClosedExp__Group_1__0__Impl12743 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__1__Impl_in_rule__ClosedExp__Group_1__112773 = new BitSet(new long[]{0x0008000000000000L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__2_in_rule__ClosedExp__Group_1__112776 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__IfCaseExpAssignment_1_1_in_rule__ClosedExp__Group_1__1__Impl12803 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__2__Impl_in_rule__ClosedExp__Group_1__212833 = new BitSet(new long[]{0x7D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__3_in_rule__ClosedExp__Group_1__212836 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__ClosedExp__Group_1__2__Impl12864 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__3__Impl_in_rule__ClosedExp__Group_1__312895 = new BitSet(new long[]{0x0010000000000000L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__4_in_rule__ClosedExp__Group_1__312898 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__ThenCaseExpAssignment_1_3_in_rule__ClosedExp__Group_1__3__Impl12925 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__4__Impl_in_rule__ClosedExp__Group_1__412955 = new BitSet(new long[]{0x7D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__5_in_rule__ClosedExp__Group_1__412958 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_rule__ClosedExp__Group_1__4__Impl12986 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_1__5__Impl_in_rule__ClosedExp__Group_1__513017 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__ElseCaseExpAssignment_1_5_in_rule__ClosedExp__Group_1__5__Impl13044 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2__0__Impl_in_rule__ClosedExp__Group_2__013086 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2__1_in_rule__ClosedExp__Group_2__013089 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__NameAssignment_2_0_in_rule__ClosedExp__Group_2__0__Impl13116 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2__1__Impl_in_rule__ClosedExp__Group_2__113146 = new BitSet(new long[]{0x0004000200000000L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2__2_in_rule__ClosedExp__Group_2__113149 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__DoExpAssignment_2_1_in_rule__ClosedExp__Group_2__1__Impl13176 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2__2__Impl_in_rule__ClosedExp__Group_2__213206 = new BitSet(new long[]{0x0004000200000000L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2__3_in_rule__ClosedExp__Group_2__213209 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2_2__0_in_rule__ClosedExp__Group_2__2__Impl13236 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2__3__Impl_in_rule__ClosedExp__Group_2__313267 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__ClosedExp__Group_2__3__Impl13295 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2_2__0__Impl_in_rule__ClosedExp__Group_2_2__013334 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2_2__1_in_rule__ClosedExp__Group_2_2__013337 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__ClosedExp__Group_2_2__0__Impl13365 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__Group_2_2__1__Impl_in_rule__ClosedExp__Group_2_2__113396 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ClosedExp__DoExpAssignment_2_2_1_in_rule__ClosedExp__Group_2_2__1__Impl13423 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__Group_1__0__Impl_in_rule__MonadicExp__Group_1__013457 = new BitSet(new long[]{0x0020000000000000L});
    public static final BitSet FOLLOW_rule__MonadicExp__Group_1__1_in_rule__MonadicExp__Group_1__013460 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__NameAssignment_1_0_in_rule__MonadicExp__Group_1__0__Impl13487 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__Group_1__1__Impl_in_rule__MonadicExp__Group_1__113517 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__Group_1__2_in_rule__MonadicExp__Group_1__113520 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_rule__MonadicExp__Group_1__1__Impl13548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__Group_1__2__Impl_in_rule__MonadicExp__Group_1__213579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__ExpAssignment_1_2_in_rule__MonadicExp__Group_1__2__Impl13606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group__0__Impl_in_rule__OrElseExp__Group__013642 = new BitSet(new long[]{0x8000000000000000L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group__1_in_rule__OrElseExp__Group__013645 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAndAlsoExp_in_rule__OrElseExp__Group__0__Impl13672 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group__1__Impl_in_rule__OrElseExp__Group__113701 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group_1__0_in_rule__OrElseExp__Group__1__Impl13728 = new BitSet(new long[]{0x8000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group_1__0__Impl_in_rule__OrElseExp__Group_1__013763 = new BitSet(new long[]{0x8000000000000000L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group_1__1_in_rule__OrElseExp__Group_1__013766 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group_1__1__Impl_in_rule__OrElseExp__Group_1__113824 = new BitSet(new long[]{0x0D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group_1__2_in_rule__OrElseExp__Group_1__113827 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__NameAssignment_1_1_in_rule__OrElseExp__Group_1__1__Impl13854 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__Group_1__2__Impl_in_rule__OrElseExp__Group_1__213884 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OrElseExp__RightAssignment_1_2_in_rule__OrElseExp__Group_1__2__Impl13911 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group__0__Impl_in_rule__AndAlsoExp__Group__013947 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group__1_in_rule__AndAlsoExp__Group__013950 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRExp_in_rule__AndAlsoExp__Group__0__Impl13977 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group__1__Impl_in_rule__AndAlsoExp__Group__114006 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group_1__0_in_rule__AndAlsoExp__Group__1__Impl14033 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group_1__0__Impl_in_rule__AndAlsoExp__Group_1__014068 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group_1__1_in_rule__AndAlsoExp__Group_1__014071 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group_1__1__Impl_in_rule__AndAlsoExp__Group_1__114129 = new BitSet(new long[]{0x0D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group_1__2_in_rule__AndAlsoExp__Group_1__114132 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__NameAssignment_1_1_in_rule__AndAlsoExp__Group_1__1__Impl14159 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__Group_1__2__Impl_in_rule__AndAlsoExp__Group_1__214189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AndAlsoExp__RightAssignment_1_2_in_rule__AndAlsoExp__Group_1__2__Impl14216 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RExp__Group__0__Impl_in_rule__RExp__Group__014252 = new BitSet(new long[]{0x0000000000007E30L});
    public static final BitSet FOLLOW_rule__RExp__Group__1_in_rule__RExp__Group__014255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAExp_in_rule__RExp__Group__0__Impl14282 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RExp__Group__1__Impl_in_rule__RExp__Group__114311 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RExp__Group_1__0_in_rule__RExp__Group__1__Impl14338 = new BitSet(new long[]{0x0000000000007E32L});
    public static final BitSet FOLLOW_rule__RExp__Group_1__0__Impl_in_rule__RExp__Group_1__014373 = new BitSet(new long[]{0x0D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RExp__Group_1__1_in_rule__RExp__Group_1__014376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RExp__SymAssignment_1_0_in_rule__RExp__Group_1__0__Impl14403 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RExp__Group_1__1__Impl_in_rule__RExp__Group_1__114433 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RExp__AexpsAssignment_1_1_in_rule__RExp__Group_1__1__Impl14460 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AExp__Group__0__Impl_in_rule__AExp__Group__014494 = new BitSet(new long[]{0x0000000030000000L});
    public static final BitSet FOLLOW_rule__AExp__Group__1_in_rule__AExp__Group__014497 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMExp_in_rule__AExp__Group__0__Impl14524 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AExp__Group__1__Impl_in_rule__AExp__Group__114553 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AExp__Group_1__0_in_rule__AExp__Group__1__Impl14580 = new BitSet(new long[]{0x0000000030000002L});
    public static final BitSet FOLLOW_rule__AExp__Group_1__0__Impl_in_rule__AExp__Group_1__014615 = new BitSet(new long[]{0x0D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AExp__Group_1__1_in_rule__AExp__Group_1__014618 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AExp__SignAssignment_1_0_in_rule__AExp__Group_1__0__Impl14645 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AExp__Group_1__1__Impl_in_rule__AExp__Group_1__114675 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AExp__MexpsAssignment_1_1_in_rule__AExp__Group_1__1__Impl14702 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MExp__Group__0__Impl_in_rule__MExp__Group__014736 = new BitSet(new long[]{0x00000000C0000000L});
    public static final BitSet FOLLOW_rule__MExp__Group__1_in_rule__MExp__Group__014739 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectExp_in_rule__MExp__Group__0__Impl14766 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MExp__Group__1__Impl_in_rule__MExp__Group__114795 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MExp__Group_1__0_in_rule__MExp__Group__1__Impl14822 = new BitSet(new long[]{0x00000000C0000002L});
    public static final BitSet FOLLOW_rule__MExp__Group_1__0__Impl_in_rule__MExp__Group_1__014857 = new BitSet(new long[]{0x0D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MExp__Group_1__1_in_rule__MExp__Group_1__014860 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MExp__SymbolAssignment_1_0_in_rule__MExp__Group_1__0__Impl14887 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MExp__Group_1__1__Impl_in_rule__MExp__Group_1__114917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MExp__ApplyexpsAssignment_1_1_in_rule__MExp__Group_1__1__Impl14944 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SelectExp__Group__0__Impl_in_rule__SelectExp__Group__014978 = new BitSet(new long[]{0x0040000000000000L});
    public static final BitSet FOLLOW_rule__SelectExp__Group__1_in_rule__SelectExp__Group__014981 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleApplyExp_in_rule__SelectExp__Group__0__Impl15008 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SelectExp__Group__1__Impl_in_rule__SelectExp__Group__115037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SelectExp__Group_1__0_in_rule__SelectExp__Group__1__Impl15064 = new BitSet(new long[]{0x0040000000000002L});
    public static final BitSet FOLLOW_rule__SelectExp__Group_1__0__Impl_in_rule__SelectExp__Group_1__015099 = new BitSet(new long[]{0x0D805000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SelectExp__Group_1__1_in_rule__SelectExp__Group_1__015102 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_rule__SelectExp__Group_1__0__Impl15130 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SelectExp__Group_1__1__Impl_in_rule__SelectExp__Group_1__115161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SelectExp__ApplyexpsAssignment_1_1_in_rule__SelectExp__Group_1__1__Impl15188 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__Group_0__0__Impl_in_rule__ApplyExp__Group_0__015222 = new BitSet(new long[]{0x0D005000000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__Group_0__1_in_rule__ApplyExp__Group_0__015225 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_rule__ApplyExp__Group_0__0__Impl15253 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__Group_0__1__Impl_in_rule__ApplyExp__Group_0__115284 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAtomicExp_in_rule__ApplyExp__Group_0__1__Impl15311 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__Group_1__0__Impl_in_rule__ApplyExp__Group_1__015344 = new BitSet(new long[]{0x0D005001000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__Group_1__1_in_rule__ApplyExp__Group_1__015347 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__AtomicExpAssignment_1_0_in_rule__ApplyExp__Group_1__0__Impl15374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__Group_1__1__Impl_in_rule__ApplyExp__Group_1__115404 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ApplyExp__ArgsAssignment_1_1_in_rule__ApplyExp__Group_1__1__Impl15431 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Args__Group__0__Impl_in_rule__Args__Group__015465 = new BitSet(new long[]{0x0D005001000780B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Args__Group__1_in_rule__Args__Group__015468 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Args__Group__1__Impl_in_rule__Args__Group__115526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Args__Alternatives_1_in_rule__Args__Group__1__Impl15553 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_2__0__Impl_in_rule__AtomicExp__Group_2__015587 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_2__1_in_rule__AtomicExp__Group_2__015590 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__NameAssignment_2_0_in_rule__AtomicExp__Group_2__0__Impl15617 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_2__1__Impl_in_rule__AtomicExp__Group_2__115647 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_2_1__0_in_rule__AtomicExp__Group_2__1__Impl15674 = new BitSet(new long[]{0x0000000000000802L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_2_1__0__Impl_in_rule__AtomicExp__Group_2_1__015709 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_2_1__1_in_rule__AtomicExp__Group_2_1__015712 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_DOT_in_rule__AtomicExp__Group_2_1__0__Impl15740 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_2_1__1__Impl_in_rule__AtomicExp__Group_2_1__115770 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__IdAssignment_2_1_1_in_rule__AtomicExp__Group_2_1__1__Impl15797 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__0__Impl_in_rule__AtomicExp__Group_3__015831 = new BitSet(new long[]{0x0000100000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__1_in_rule__AtomicExp__Group_3__015834 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__NameAssignment_3_0_in_rule__AtomicExp__Group_3__0__Impl15861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__1__Impl_in_rule__AtomicExp__Group_3__115891 = new BitSet(new long[]{0x0080000000000030L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__2_in_rule__AtomicExp__Group_3__115894 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_rule__AtomicExp__Group_3__1__Impl15922 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__2__Impl_in_rule__AtomicExp__Group_3__215953 = new BitSet(new long[]{0x0000240000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__3_in_rule__AtomicExp__Group_3__215956 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__FieldsAssignment_3_2_in_rule__AtomicExp__Group_3__2__Impl15983 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__3__Impl_in_rule__AtomicExp__Group_3__316013 = new BitSet(new long[]{0x0000240000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__4_in_rule__AtomicExp__Group_3__316016 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3_3__0_in_rule__AtomicExp__Group_3__3__Impl16043 = new BitSet(new long[]{0x0000040000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3__4__Impl_in_rule__AtomicExp__Group_3__416074 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__AtomicExp__Group_3__4__Impl16102 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3_3__0__Impl_in_rule__AtomicExp__Group_3_3__016143 = new BitSet(new long[]{0x0080000000000030L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3_3__1_in_rule__AtomicExp__Group_3_3__016146 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__AtomicExp__Group_3_3__0__Impl16174 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_3_3__1__Impl_in_rule__AtomicExp__Group_3_3__116205 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__FieldsAssignment_3_3_1_in_rule__AtomicExp__Group_3_3__1__Impl16232 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_4__0__Impl_in_rule__AtomicExp__Group_4__016266 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_4__1_in_rule__AtomicExp__Group_4__016269 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_rule__AtomicExp__Group_4__0__Impl16297 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_4__1__Impl_in_rule__AtomicExp__Group_4__116328 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__NameAssignment_4_1_in_rule__AtomicExp__Group_4__1__Impl16355 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5__0__Impl_in_rule__AtomicExp__Group_5__016389 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5__1_in_rule__AtomicExp__Group_5__016392 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_rule__AtomicExp__Group_5__0__Impl16420 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5__1__Impl_in_rule__AtomicExp__Group_5__116451 = new BitSet(new long[]{0x0000800000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5__2_in_rule__AtomicExp__Group_5__116454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__ExprAssignment_5_1_in_rule__AtomicExp__Group_5__1__Impl16481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5__2__Impl_in_rule__AtomicExp__Group_5__216511 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5__3_in_rule__AtomicExp__Group_5__216514 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_rule__AtomicExp__Group_5__2__Impl16542 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5__3__Impl_in_rule__AtomicExp__Group_5__316573 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5_3__0_in_rule__AtomicExp__Group_5__3__Impl16600 = new BitSet(new long[]{0x0000000000000802L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5_3__0__Impl_in_rule__AtomicExp__Group_5_3__016639 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5_3__1_in_rule__AtomicExp__Group_5_3__016642 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_DOT_in_rule__AtomicExp__Group_5_3__0__Impl16670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5_3__1__Impl_in_rule__AtomicExp__Group_5_3__116700 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__IdAssignment_5_3_1_in_rule__AtomicExp__Group_5_3__1__Impl16727 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6__0__Impl_in_rule__AtomicExp__Group_6__016761 = new BitSet(new long[]{0x0000100000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6__1_in_rule__AtomicExp__Group_6__016764 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6__1__Impl_in_rule__AtomicExp__Group_6__116822 = new BitSet(new long[]{0x0000200000000030L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6__2_in_rule__AtomicExp__Group_6__116825 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_rule__AtomicExp__Group_6__1__Impl16853 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6__2__Impl_in_rule__AtomicExp__Group_6__216884 = new BitSet(new long[]{0x0000200000000030L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6__3_in_rule__AtomicExp__Group_6__216887 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2__0_in_rule__AtomicExp__Group_6__2__Impl16914 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6__3__Impl_in_rule__AtomicExp__Group_6__316945 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__AtomicExp__Group_6__3__Impl16973 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2__0__Impl_in_rule__AtomicExp__Group_6_2__017012 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2__1_in_rule__AtomicExp__Group_6_2__017015 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__IdAssignment_6_2_0_in_rule__AtomicExp__Group_6_2__0__Impl17042 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2__1__Impl_in_rule__AtomicExp__Group_6_2__117072 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2__2_in_rule__AtomicExp__Group_6_2__117075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__AtomicExp__Group_6_2__1__Impl17103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2__2__Impl_in_rule__AtomicExp__Group_6_2__217134 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2__3_in_rule__AtomicExp__Group_6_2__217137 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__ExpsAssignment_6_2_2_in_rule__AtomicExp__Group_6_2__2__Impl17164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2__3__Impl_in_rule__AtomicExp__Group_6_2__317194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2_3__0_in_rule__AtomicExp__Group_6_2__3__Impl17221 = new BitSet(new long[]{0x0000040000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2_3__0__Impl_in_rule__AtomicExp__Group_6_2_3__017260 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2_3__1_in_rule__AtomicExp__Group_6_2_3__017263 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__AtomicExp__Group_6_2_3__0__Impl17291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2_3__1__Impl_in_rule__AtomicExp__Group_6_2_3__117322 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2_3__2_in_rule__AtomicExp__Group_6_2_3__117325 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__IdAssignment_6_2_3_1_in_rule__AtomicExp__Group_6_2_3__1__Impl17352 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2_3__2__Impl_in_rule__AtomicExp__Group_6_2_3__217382 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2_3__3_in_rule__AtomicExp__Group_6_2_3__217385 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__AtomicExp__Group_6_2_3__2__Impl17413 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_6_2_3__3__Impl_in_rule__AtomicExp__Group_6_2_3__317444 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__ExpsAssignment_6_2_3_3_in_rule__AtomicExp__Group_6_2_3__3__Impl17471 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__0__Impl_in_rule__AtomicExp__Group_7__017509 = new BitSet(new long[]{0x0000008000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__1_in_rule__AtomicExp__Group_7__017512 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__NameAssignment_7_0_in_rule__AtomicExp__Group_7__0__Impl17539 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__1__Impl_in_rule__AtomicExp__Group_7__117569 = new BitSet(new long[]{0x0200000000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__2_in_rule__AtomicExp__Group_7__117572 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__ValDeclAssignment_7_1_in_rule__AtomicExp__Group_7__1__Impl17601 = new BitSet(new long[]{0x0000008000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__ValDeclAssignment_7_1_in_rule__AtomicExp__Group_7__1__Impl17613 = new BitSet(new long[]{0x0000008000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__2__Impl_in_rule__AtomicExp__Group_7__217646 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__3_in_rule__AtomicExp__Group_7__217649 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_rule__AtomicExp__Group_7__2__Impl17677 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__3__Impl_in_rule__AtomicExp__Group_7__317708 = new BitSet(new long[]{0x0004000000000000L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__4_in_rule__AtomicExp__Group_7__317711 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__ExprAssignment_7_3_in_rule__AtomicExp__Group_7__3__Impl17738 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_7__4__Impl_in_rule__AtomicExp__Group_7__417768 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__AtomicExp__Group_7__4__Impl17796 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__Group_0__0__Impl_in_rule__Field__Group_0__017837 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__Field__Group_0__1_in_rule__Field__Group_0__017840 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__NameAssignment_0_0_in_rule__Field__Group_0__0__Impl17867 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__Group_0__1__Impl_in_rule__Field__Group_0__117897 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__Group_0__2_in_rule__Field__Group_0__117900 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__Field__Group_0__1__Impl17928 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__Group_0__2__Impl_in_rule__Field__Group_0__217959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__ExpAssignment_0_2_in_rule__Field__Group_0__2__Impl17986 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__Group_1__0__Impl_in_rule__Field__Group_1__018022 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__Field__Group_1__1_in_rule__Field__Group_1__018025 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_rule__Field__Group_1__0__Impl18053 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__Group_1__1__Impl_in_rule__Field__Group_1__118084 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__NameAssignment_1_1_in_rule__Field__Group_1__1__Impl18111 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__0__Impl_in_rule__ValueDecl__Group__018145 = new BitSet(new long[]{0x0000000000007E30L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__1_in_rule__ValueDecl__Group__018148 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_rule__ValueDecl__Group__0__Impl18176 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__1__Impl_in_rule__ValueDecl__Group__118207 = new BitSet(new long[]{0x0000002000000030L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__2_in_rule__ValueDecl__Group__118210 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__Alternatives_1_in_rule__ValueDecl__Group__1__Impl18237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__2__Impl_in_rule__ValueDecl__Group__218267 = new BitSet(new long[]{0x0000002000000030L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__3_in_rule__ValueDecl__Group__218270 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__IdsAssignment_2_in_rule__ValueDecl__Group__2__Impl18297 = new BitSet(new long[]{0x0000000000000032L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__3__Impl_in_rule__ValueDecl__Group__318328 = new BitSet(new long[]{0x7D805000000783B0L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__4_in_rule__ValueDecl__Group__318331 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__ValueDecl__Group__3__Impl18359 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__Group__4__Impl_in_rule__ValueDecl__Group__418390 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__ExpAssignment_4_in_rule__ValueDecl__Group__4__Impl18417 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_1__0__Impl_in_rule__PAT__Group_1__018457 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__IntAssignment_1_0_in_rule__PAT__Group_1__0__Impl18484 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_2__0__Impl_in_rule__PAT__Group_2__018516 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_2_0__0_in_rule__PAT__Group_2__0__Impl18543 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_2_0__0__Impl_in_rule__PAT__Group_2_0__018575 = new BitSet(new long[]{0x04000000000382B0L});
    public static final BitSet FOLLOW_rule__PAT__Group_2_0__1_in_rule__PAT__Group_2_0__018578 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__IdAssignment_2_0_0_in_rule__PAT__Group_2_0__0__Impl18605 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_2_0__1__Impl_in_rule__PAT__Group_2_0__118635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__PatAssignment_2_0_1_in_rule__PAT__Group_2_0__1__Impl18662 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_3__0__Impl_in_rule__PAT__Group_3__018697 = new BitSet(new long[]{0x0000000000020C70L});
    public static final BitSet FOLLOW_rule__PAT__Group_3__1_in_rule__PAT__Group_3__018700 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_rule__PAT__Group_3__0__Impl18728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_3__1__Impl_in_rule__PAT__Group_3__118759 = new BitSet(new long[]{0x0400000000000000L});
    public static final BitSet FOLLOW_rule__PAT__Group_3__2_in_rule__PAT__Group_3__118762 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__BitpatAssignment_3_1_in_rule__PAT__Group_3__1__Impl18789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__Group_3__2__Impl_in_rule__PAT__Group_3__218819 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_rule__PAT__Group_3__2__Impl18847 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DECODEPAT__Group_0__0__Impl_in_rule__DECODEPAT__Group_0__018884 = new BitSet(new long[]{0x0000000000020C70L});
    public static final BitSet FOLLOW_rule__DECODEPAT__Group_0__1_in_rule__DECODEPAT__Group_0__018887 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_rule__DECODEPAT__Group_0__0__Impl18915 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DECODEPAT__Group_0__1__Impl_in_rule__DECODEPAT__Group_0__118946 = new BitSet(new long[]{0x0400000000000000L});
    public static final BitSet FOLLOW_rule__DECODEPAT__Group_0__2_in_rule__DECODEPAT__Group_0__118949 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBITPAT_in_rule__DECODEPAT__Group_0__1__Impl18979 = new BitSet(new long[]{0x0000000000020C72L});
    public static final BitSet FOLLOW_ruleBITPAT_in_rule__DECODEPAT__Group_0__1__Impl18992 = new BitSet(new long[]{0x0000000000020C72L});
    public static final BitSet FOLLOW_rule__DECODEPAT__Group_0__2__Impl_in_rule__DECODEPAT__Group_0__219025 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_rule__DECODEPAT__Group_0__2__Impl19053 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPAT__Group_1__0__Impl_in_rule__BITPAT__Group_1__019090 = new BitSet(new long[]{0x0800000800000000L});
    public static final BitSet FOLLOW_rule__BITPAT__Group_1__1_in_rule__BITPAT__Group_1__019093 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPAT__Alternatives_1_0_in_rule__BITPAT__Group_1__0__Impl19120 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPAT__Group_1__1__Impl_in_rule__BITPAT__Group_1__119150 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBITPATORINT_in_rule__BITPAT__Group_1__1__Impl19178 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPATORINT__Group_0__0__Impl_in_rule__BITPATORINT__Group_0__019213 = new BitSet(new long[]{0x0000000000030000L});
    public static final BitSet FOLLOW_rule__BITPATORINT__Group_0__1_in_rule__BITPATORINT__Group_0__019216 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__BITPATORINT__Group_0__0__Impl19244 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPATORINT__Group_0__1__Impl_in_rule__BITPATORINT__Group_0__119275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePOSINT_in_rule__BITPATORINT__Group_0__1__Impl19302 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPATORINT__Group_1__0__Impl_in_rule__BITPATORINT__Group_1__019335 = new BitSet(new long[]{0x0000000000020C40L});
    public static final BitSet FOLLOW_rule__BITPATORINT__Group_1__1_in_rule__BITPATORINT__Group_1__019338 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_59_in_rule__BITPATORINT__Group_1__0__Impl19366 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BITPATORINT__Group_1__1__Impl_in_rule__BITPATORINT__Group_1__119397 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBINARY_in_rule__BITPATORINT__Group_1__1__Impl19424 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LIT__Group_1__0__Impl_in_rule__LIT__Group_1__019457 = new BitSet(new long[]{0x0400000000020C40L});
    public static final BitSet FOLLOW_rule__LIT__Group_1__1_in_rule__LIT__Group_1__019460 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_rule__LIT__Group_1__0__Impl19488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LIT__Group_1__1__Impl_in_rule__LIT__Group_1__119519 = new BitSet(new long[]{0x0400000000020C40L});
    public static final BitSet FOLLOW_rule__LIT__Group_1__2_in_rule__LIT__Group_1__119522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBINARY_in_rule__LIT__Group_1__1__Impl19550 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LIT__Group_1__2__Impl_in_rule__LIT__Group_1__219581 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_rule__LIT__Group_1__2__Impl19609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDecl_in_rule__Model__DeclAssignment_019651 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDecl_in_rule__Model__DeclAssignment_1_119682 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__DeclExport__NameAssignment_119717 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyVars_in_rule__DeclExport__TyVarsAssignment_219752 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__DeclExport__TypeAssignment_419783 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__NameAlternatives_1_0_in_rule__DeclType__NameAssignment_119814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyVars_in_rule__DeclType__TyVarsAssignment_219847 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConDecl_in_rule__DeclType__ConDeclAssignment_4_0_0_019878 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConDecl_in_rule__DeclType__ConDeclAssignment_4_0_0_1_119909 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__DeclType__ValueAssignment_4_119940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__NameAlternatives_1_0_0_0_0_0_in_rule__DeclVal__NameAssignment_1_0_0_0_019971 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSYM_in_rule__DeclVal__NameAssignment_1_0_0_0_120004 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__AttrAlternatives_1_0_0_1_0_in_rule__DeclVal__AttrAssignment_1_0_0_120035 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__DeclVal__ExpAssignment_1_0_0_320068 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMID_in_rule__DeclVal__MidAssignment_1_1_0_020099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__AttrAlternatives_1_1_0_1_0_in_rule__DeclVal__AttrAssignment_1_1_0_120130 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__DeclVal__ExpAssignment_1_1_220163 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__NameAlternatives_1_2_0_0_in_rule__DeclVal__NameAssignment_1_2_020194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDECODEPAT_in_rule__DeclVal__DecPatAssignment_1_2_220227 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__DeclVal__ExpAssignment_1_2_4_0_120258 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__DeclVal__ExpsAssignment_1_2_4_1_120289 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__DeclVal__ExpsAssignment_1_2_4_1_320320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyVar_in_rule__TyVars__AttrAssignment_120351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyVar_in_rule__TyVars__AttrAssignment_2_120382 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyVar__NameAlternatives_0_in_rule__TyVar__NameAssignment20413 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCONS_in_rule__ConDecl__NameAssignment_020446 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__ConDecl__TyAssignment_1_120477 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__ValueAlternatives_0_0_in_rule__Ty__ValueAssignment_020508 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleINTEGER_in_rule__Ty__ValueAssignment_1_120541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Ty__TypeRefAssignment_2_120576 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Ty__TypeRefAssignment_3_0_020615 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Ty__TypeAlternatives_3_0_1_0_in_rule__Ty__TypeAssignment_3_0_120650 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyBind_in_rule__Ty__TyBindAssignment_3_1_120683 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyBind_in_rule__Ty__TyBindAssignment_3_1_2_120714 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyElement_in_rule__Ty__ElementsAssignment_4_2_020745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTyElement_in_rule__Ty__ElementsAssignment_4_2_1_120776 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__Ty__ParamAssignment_5_120807 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__Ty__ParamAssignment_5_2_120838 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__Ty__ResTypeAssignment_5_520869 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__Ty__ResTypeAssignment_6_2_120900 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__Ty__RAssignment_7_120931 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__Ty__InAssignment_7_320962 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__Ty__OutAssignment_7_520993 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyBind__NameAlternatives_0_0_in_rule__TyBind__NameAssignment_021024 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__TyBind__ValueAssignment_1_121057 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TyElement__NameAlternatives_0_0_in_rule__TyElement__NameAssignment_021088 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTy_in_rule__TyElement__ValueAssignment_221121 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCaseExp_in_rule__Exp__NameAssignment_021152 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMID_in_rule__Exp__MidAssignment_1_021183 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCaseExp_in_rule__Exp__CaseExpsAssignment_1_121214 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_60_in_rule__CaseExp__NameAssignment_1_021250 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleClosedExp_in_rule__CaseExp__ClosedExpAssignment_1_121289 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePAT_in_rule__CaseExp__PatAssignment_1_3_021320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__CaseExp__ExpAssignment_1_3_221351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePAT_in_rule__CaseExp__PatAssignment_1_3_3_121382 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__CaseExp__ExpAssignment_1_3_3_321413 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_61_in_rule__ClosedExp__NameAssignment_1_021449 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCaseExp_in_rule__ClosedExp__IfCaseExpAssignment_1_121488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCaseExp_in_rule__ClosedExp__ThenCaseExpAssignment_1_321519 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCaseExp_in_rule__ClosedExp__ElseCaseExpAssignment_1_521550 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_62_in_rule__ClosedExp__NameAssignment_2_021586 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonadicExp_in_rule__ClosedExp__DoExpAssignment_2_121625 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonadicExp_in_rule__ClosedExp__DoExpAssignment_2_2_121656 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__MonadicExp__ExpAssignment_021687 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MonadicExp__NameAlternatives_1_0_0_in_rule__MonadicExp__NameAssignment_1_021718 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__MonadicExp__ExpAssignment_1_221751 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_63_in_rule__OrElseExp__NameAssignment_1_121787 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAndAlsoExp_in_rule__OrElseExp__RightAssignment_1_221826 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_64_in_rule__AndAlsoExp__NameAssignment_1_121862 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRExp_in_rule__AndAlsoExp__RightAssignment_1_221901 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSYM_in_rule__RExp__SymAssignment_1_021932 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAExp_in_rule__RExp__AexpsAssignment_1_121963 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AExp__SignAlternatives_1_0_0_in_rule__AExp__SignAssignment_1_021994 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMExp_in_rule__AExp__MexpsAssignment_1_122027 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MExp__SymbolAlternatives_1_0_0_in_rule__MExp__SymbolAssignment_1_022058 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleApplyExp_in_rule__MExp__ApplyexpsAssignment_1_122091 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleApplyExp_in_rule__SelectExp__ApplyexpsAssignment_1_122122 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAtomicExp_in_rule__ApplyExp__AtomicExpAssignment_1_022153 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgs_in_rule__ApplyExp__ArgsAssignment_1_122184 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAtomicExp_in_rule__Args__ArgsAssignment_1_022215 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLIT_in_rule__AtomicExp__NameAssignment_022246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__AtomicExp__NameAssignment_122277 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__NameAlternatives_2_0_0_in_rule__AtomicExp__NameAssignment_2_022308 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__IdAlternatives_2_1_1_0_in_rule__AtomicExp__IdAssignment_2_1_122341 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_59_in_rule__AtomicExp__NameAssignment_3_022379 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleField_in_rule__AtomicExp__FieldsAssignment_3_222418 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleField_in_rule__AtomicExp__FieldsAssignment_3_3_122449 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__NameAlternatives_4_1_0_in_rule__AtomicExp__NameAssignment_4_122480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__AtomicExp__ExprAssignment_5_122513 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__IdAlternatives_5_3_1_0_in_rule__AtomicExp__IdAssignment_5_3_122544 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__IdAlternatives_6_2_0_0_in_rule__AtomicExp__IdAssignment_6_2_022577 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__AtomicExp__ExpsAssignment_6_2_222610 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__IdAlternatives_6_2_3_1_0_in_rule__AtomicExp__IdAssignment_6_2_3_122641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__AtomicExp__ExpsAssignment_6_2_3_322674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_65_in_rule__AtomicExp__NameAssignment_7_022710 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleValueDecl_in_rule__AtomicExp__ValDeclAssignment_7_122749 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__AtomicExp__ExprAssignment_7_322780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__NameAlternatives_0_0_0_in_rule__Field__NameAssignment_0_022811 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__Field__ExpAssignment_0_222844 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Field__NameAlternatives_1_1_0_in_rule__Field__NameAssignment_1_122875 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__NameAlternatives_1_0_0_in_rule__ValueDecl__NameAssignment_1_022908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSYM_in_rule__ValueDecl__NameAssignment_1_122941 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ValueDecl__IdsAlternatives_2_0_in_rule__ValueDecl__IdsAssignment_222972 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExp_in_rule__ValueDecl__ExpAssignment_423005 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_USCORE_in_rule__PAT__UscoreAssignment_023036 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleINTEGER_in_rule__PAT__IntAssignment_1_023067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PAT__IdAlternatives_2_0_0_0_in_rule__PAT__IdAssignment_2_0_023098 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePAT_in_rule__PAT__PatAssignment_2_0_123131 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBITPAT_in_rule__PAT__BitpatAssignment_3_123162 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CONS__ConNameAlternatives_0_in_rule__CONS__ConNameAssignment23193 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclType__Group_4_0__0_in_synpred4_InternalGDSL2471 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_0__0_in_synpred5_InternalGDSL2522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DeclVal__Group_1_1__0_in_synpred6_InternalGDSL2540 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RExp__Group_1__0_in_synpred104_InternalGDSL14338 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_2_1__0_in_synpred108_InternalGDSL15674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AtomicExp__Group_5_3__0_in_synpred110_InternalGDSL16600 = new BitSet(new long[]{0x0000000000000002L});

}